Editing/Modding Arcanum Guide - Spells, Items, Monsters

Discussion in 'Modding and Scripting Support' started by Leonidus, Oct 24, 2012.

Remove all ads!
Support Terra-Arcanum:

GOG.com

PayPal - The safer, easier way to pay online!
  1. Leonidus

    Leonidus Member

    Messages:
    115
    Likes Received:
    0
    Joined:
    Dec 4, 2011
    (note this is an incomplete post that I figure I would start off while I'm home on my lunch break. More to come later, when I'm home and feel like taking a break from editing the best god damn pc rpg ever made.)

    I started editing Arcanum a few weeks ago and have had a lot of success at it. Because the game is not particularly friendly for editing, I figure I'll lay out the basics for how I've done things so far.

    Firstly, things which I can offer advice on: editing most stats of almost every spell, weapon, armor, item, effect, blessing, curse, background, race, and creature in the game.

    The basic way in which I do this is by undatting the .dat game files, and changing the values in the associated desc/mes/rules/proto sections.

    Things which I cannot currently offer advice on, and things to look out for:
    1. Some items seem to be reset by the game every time Arcanum starts, probably due to their association with important scripted events. Ex: ruby items or bone weapons
    2. Some items seem to be based on items you can edit, but then the stats are changed for that particular item within the game. Ex: bangelian scourge
    3. Some items seem to be associated with scripts and therefore changing them in certain ways causes crashing or instability. Ex: add item scripts to guard armor
    4. Some spells seem to cause bugs if changed. A good example is if you move the Resurrect spell from it's last rank in necro white to the first rank, then you only resurrect the image of the being and it does not act as if alive.
    5. Some stats can be applied to certain items but not others. Adding mana storage to wizard cloaks has so far not worked for me, only on weapons.
    6. I have never added anything new to the game, only changed something that already existed. I cannot give advice on how to make a new item, but I can tell you how to change an existing sword into the sword you want.
    7. Only most of the things in the game show up when unzipped from the .dat files. What this means is whatever is not in the .dat game files is something I cannot edit (like some items, for example).
    8. I can only change 'numbers in the game' and not the fundamental way in which those numbers interact. I can change an ogre's strength, but I cannot change the way in which strength affects damage.


    Overall though, I have already edited 95% of what is in the game, and if I can figure out the last 5% then I will post it here as well.

    On to the guide!

    The Beginning:
    --------------

    The first thing you should do, if editing / modding Arcanum, is leave the one you play the hell alone. Quite important. Arcanum is already a heavily bugged game, which took fans years and years to get it to the playable state we enjoy today (thanks again Droggy).

    SO! Therefore, the second thing to do is to install Arcanum again in separate folder. I recommend C:\Games\ArcanumEdited, or a folder that is right next to your original install. Use the updates you like to play with on the new install, of course (UAP, Hi Res, LevelCapRemover, etc.).

    Now you have to unravel the game files to reveal things you can actually change. This means undatting the .dat files, which contain the game's data. For this, I use dbmaker (downloadable from terra-arcanum here). Dbmaker is Troika's original undatting tool.

    Dbmaker:
    ----------

    To use dbmaker to undat a .dat file, you need three things in the same new folder, which you just inexplicably felt the urge to make, specifically to hold these three sacred things. 1. A copy of the .dat file to be undatted. 2. A copy of dbmaker.exe 3. Create a shortcut of the dbmaker.exe you just created, inside the folder you just created it in. Right click the shortcut, open it's Properties, and go to the Target field, because you need to enter something special there. You need to enter

    -u "nameofdat.dat"

    An example is:
    1.Create new folder
    2.Copy Arcanum5.dat into folder
    3.Copy dbmaker.exe into folder
    4.Right click dmaker.exe, create shortcut
    5.Right click shortcut, open Properties
    6.At end of Target, type in
    -u "Arcanum5.dat"
    7.It now looks like: Target: C:\FuckingFoldersNamesAndShit\StopReadingFolderNames\arcanum5 undatted\dbmaker.exe" -u "Arcanum5.dat"
    8.Double click that shortcut.
    9.Watch that sweet DOS prompt work its magic.

    If you are wondering why your new Arcanum install doesn't have an Arcanum5.dat, it's because you didn't use the unofficial patch.

    Now that you can undat the game files, you can change them. The files I like to change are .txt and .mes. The .mes files can be changed using your everyday Notepad program. The proto folder holds the .pro files which are also important to edit. The items are edited by using qtScribe from here. The creatures are edited by changing monster.txt, npc.txt, and unique.txt.

    Here are .txt and .mes files you might want to look out for and why. Remember that when changing something, you must be exact in spelling and syntax, which means STR is not allowed, only ST is appropriate abbreviation for strength. If data is divided into 10 numbers per line, each with 1 space inbetween, don't add two god damn spaces anywhere in there.

    mes\description.mes Shows the ingame names of .pro files inside the proto folder, offset by 20. That means weapons, armor, items, NPCs, Monsters.

    mes\gameback.mes Has the text of backgrounds in the game

    mes\itemeffect.mes Overrides the autogenerated item description. Used to let players know that an item gives special effects not normally listed (like mana storage, crit bonuses, +stats and so on), or if the regular item description would go on too long (like armor with bonuses to every resist).

    mes\schematic_text.mes Holds the text shown on schematics in the crafting window. It automatically fills in the picture of the required items using data from schematic.mes.

    rules\ai_params.mes Determines the AI behavior of monsters and followers. Changing fleeing, casting, and when a follower will join you is particularly useful.

    rules\effect.mes Contains all the effects used to change stats of creatures in the game. This includes spells, backgrounds, classes (yes, there actually are classes in Arcanum, but only for NPCs!), item bonuses, blessings/curses, and so on. Be warned that changing some of these will change it WHEREVER it occurs, which may be more places than is readily obvious.

    rules\gamelevel.mes This has the leveling scheme info which is how NPC's spend their character points, including followers. NPCs will do whatever is required to meet the next order in the scheme. For example, you don't need ST 19, ST 20. You can just put in ST 20 and they will take strength to 20. Similarly, melee 20 (which is the max) will make them take dexterity to 18 as well.

    rules\InvenSource.mes Determines what shops sell. Notice you can change the beginning shop. Notice how each shop's final item value doesn't have an associated probability after it (just ends with item ID and closes the bracket like: 10001} ). Shops which do not end like this (because of improper editing) will go empty at their next refill, which is 24 hours of offscreen time passage. They stay blank forever, until you fix your mistake.

    rules\monster.txt Monster data. Ones at the end there are summons/crafted. Waromon shares the data of 28326 if I remember right, so do be careful. Changes will not take effect until you delete the monster prototypes (just delete all >17000 for convenience) and then restart the game, forcing the generation of new proto files using the new values in monster.txt

    rules\npc.txt NPC data. Changes to these will affect ALL of that type, including many followers. It is better to export Arcanum as a module and change that module using World Editor if you would like to change individual NPCs. http://terra-arcanum.com/phpBB/viewtopic.php?t=16118 shows how to do this.

    rules\schematic.mes Change what is required to craft what item here. You can also change how many are created per combination, like say 500 bullets, which maybe they should've done since the start, because maybe it's the only humane thing to do instead of making players go back and forth buying bullets 260 at a time in shops, wasting all their time and gold for no reason except sheer unadulterated sadism, until their soul is whittled away and an insane husk of a man remains. Maybe.

    rules\SpellList.mes Behold the holy grail of spells. Also determines how many tech items, magic items, cursed items, and consumables work. It has a special format which I will explain in the spells post.

    rules\unique.txt More monster data! Except most of them are lacking the line: Hit Points : #EnterANumberHere (like you see in monster.txt). Add the hit points line after Basic Stats like I did and change it at your heart's content. Changes will not take effect until you delete the monster prototypes (just delete all >17000 for convenience) and then restart the game, forcing the generation of new proto files using the new values in unique.txt

    mes\tech.mes This is what shows up when you want to put points into tech disciplines. If you change an item, you should change it's description to match.

    mes\spell.mes Spell descriptions here. There is limited space for each spell description, so use words carefully when you change those 700s.
     
  2. Leonidus

    Leonidus Member

    Messages:
    115
    Likes Received:
    0
    Joined:
    Dec 4, 2011
    Spells
    -------------
    SPELLS ARE AN EXTREMELY EASY CAUSE OF CRASHING AND INSTABILITY. Especially if SpellList.mes has something going completely wrong, the game won't go past intro movies at startup (MEANING IF YOU MESS THIS UP YOU CAN'T EVEN PLAY YOUR GAME UNTIL YOU FIX IT). The main cause of this for me was errors in the spell targetting.

    Edit SpellList.mes to change what a spell does.

    Edit spell.mes to change what a spell description says.

    Edit effect.mes to change what the effects in SpellList.mes do.


    SpellList.mes:
    ---------------

    SpellList.mes is the heart and soul of spells in Arcanum. It uses a specific format to determine just what exactly happens when a spell is cast.

    Firstly, all spells are divided into values of 50, beginning at 1000, and each line (that matters) needs a value. This means the first spell of the first school begins at 1000. All values from 1000-1049 only affect the first spell. That spell is normally disarm. The next spell is 1050, which should be Unlocking Cantrip, which couldn't have been just named Unlock, like a decent, normal sounding spell. It probably was called U-lock Canty and got beat up by the bigger spells on the spell playground when it was young.

    Within the confines of each spell, it has to follow a certain style. In general, mimic what other spells do and just change the degree to which it does it. Making entirely different spells takes a lot of patience and experimentation. But I believe in you. Shine on you crazy diamond.

    EVERYTIME YOU CHANGE A SPELL LINE, YOU SHOULD REORDER THE NUMBERING ON THE LINE VALUES FOR THAT SPELL. NOTHING WILL MESS UP A SPELL EASIER THAN HAVING SPELL LINES OUT OF ORDER. If nothing happens when you cast a spell, it's probably a line numbering issue.
    That is to say, the first spell of the first school MUST have {1000}, {1001}, {1005}. The lines between {1005} and {1049} MUST BE NUMBERED CORRECTLY.

    The First Line (the 0 line, like 1000 for disarm, 1050 for U-lock Canty) is targetting. Messing this up will crash your game, as well as your dreams.
    --------------------------------------------------
    Different targetting can occur within different fields. For example:

    {AoE: Tgt_None, [Begin]AoE: Tgt_Tile | Tgt_Obj_Radius | Tgt_Obj_No_Self | Tgt_Obj_No_T_Wall | Tgt_Non_Party_Critters, [Begin]Radius: 2, [Callback]AoE: Tgt_Summoned}

    Notice how the Callback has it's own targetting (the summoned target). This means what happens on the [Callback] lines can affect something different than the [Begin] lines.

    Each additional targetting flag within the same field will further restrict the allowable targets.
    So Tgt_Obj_T_Critter will allow you to target critters, which is more than
    Tgt_Obj_T_Critter | Tgt_Obj_No_ST_Critter_Dead | Tgt_Non_Party_Critters
    which will target only critters which are not dead or in the party.

    For some really useful targetting ideas, look to spells which target things in very different ways. Congeal Time targets enemies within a radius of the caster. Tempus Fugit affects every creature in the game. U-lock Canty targets only openable shit, like doors and chests.

    Tgt_Summoned seems to target specifically what was summoned by the spell.
    {AoE: Tgt_Self | Tgt_All_Party_Critters} will target all allies in your party and yourself.


    The Second Line (the 1 line, like 1001) is mana cost, maintain cost, resist, range (Yes, castable range), and Info (which is tells ai whether to feel good or bad) IN THAT ORDER. Also you can set IQ (according to the heading text at the top of the file) which I have not tested but imagine sets WP required.
    --------------------------------------------------

    The Maintain part tells the game that the spell must take up a maintained spell slot to remain active. The number after @ determines how often the spell will pulse, in real time seconds. So a Maintain: (10 @ 1) will cost 10 mana every second. It will also do what it's told in the [maintain] section of the main body in the spell (the sixth line and after which have [maintain]).

    Resists allow the target a chance to prevent some or all of the spell effects. Damage is halved by a spell save. Resist with - to a stat are harder to save when more is subtracted. Seems to work like a random roll vs the stat value of the target, adjusted by the amount listed. Like Resist: (strength @ -1) seems to do a random number generation of the range of the strength stat for the creature (like 1-20) and that value must be higher than the creature's actual value of the stat adjusted by the penalty (like a ST 15 creature on a ST-1 resist must get a 14 or more from the random number generator to save). This is pure conjecture based on the random feel from the saves and it's basically how every save throw works in every other RPG ever.

    Range limits the casting to that many tiles away. There is no range indicator in Arcanum, so if you add a range, put it in the description of the spell.
    Range example:
    , Range: 20}

    Info just means Info: agressive or Info: friendly, to tell the target whether to get mad or get glad.

    The single most insidious part of The Second Line is
    ChargeBeginCost: 0
    Which appears on the Teleport spell. This is a very different way to determine how spells are cast.

    Also notice entangle, which has the mysterious addition
    DurationTriggerCount: 2
    I don't know exactly what this does or how it works.

    Flesh to Stone has this useful piece
    Duration: (10 @ -1)
    which makes it last about 10 real time seconds.


    The Third Line (the 2 line) is for {Missile: 0}.
    --------------------------------------------------
    {Missile: 0} goes here if there's a missle involved.


    The Fourth Line (the 3 line) is No Stack and flag restrictions.
    --------------------------------------------------
    {No_Stack: 1} means it doesn't stack. Surprise!
    Flag restrictions make it so that the spell won't work on anything with that flag on it.


    The Fifth Line (the 4 line) is AI information.
    --------------------------------------------------
    AI_Offensive and AI_Defensive seem to be an ordinal value for ai spellcasting purposes. Total conjecture, completely untested, adamantly believed. If anyone knows for sure let me know.


    {AI_Summon: value} is important for summon spells to make them act like summons.

    Conjure Spirit actually has
    {No_Reflect: 1}
    in this line.

    The Sixth Line (the 5 line) is where the actual workings of the spell begins. What the spell does is laid out on lines 5-49 of each spell.
    --------------------------------------------------
    You can do all kinds of wonderful things here.
    [Begin] concerns the beginning of the spell, and by default uses the targetting from the first line of the spell or what is specified in [begin]
    [End] concerns the ending of the spell, like after a maintain is cancelled or the duration runs out or even just when the spell is considered ending like in the stun spell
    [Maintain] holds what happens every time the maintain pulses
    [Callback] determines what happens when | Play: Callback occurs (originated in an Eyecandy line) or at the end of a summon
    [EndCallback] determines what happens when Play: EndCallback occurs (originated in an Eyecandy line) or at the end of a summon

    To add an effect, use something like {[Begin], Type: Effect, 279, Add, Count: 4}
    This line, during the beginning of the spell, gives effect 279 from effect.mes, it adds it instead of removes it, and it adds 4 of the effect, not just 1

    To remove an effect, use something like {[End], Type: Effect, 279, Remove, Count: 4}


    To add a flag use something like {[Begin], Type: ObjFlag, obj_f_critter_flags, OCF_PARALYZED, FLAG_ON}
    FLAG_OFF does something obvious.


    Eyecandy is set by spell slot, determined by SpellEyeCandy.mes
    Eyecandy 2 is graphic effects.
    Eyecandy 3 is sound effects. Remove it from maintained spells to make them not extremely annoying anymore.



    Damage Examples:
    {[Begin], AoE: Tgt_Obj_No_Self | Tgt_Non_Party_Critters, Type: Damage, DmgType: Dmg_Fire, Dmg: 75-105}
    {[Begin], AoE: Tgt_Obj_Radius, Type: Damage, DmgType: Dmg_Normal, Dmg: 5-20, Dmg_Flags: Scaled}
    {[Begin], Type: Heal, Dmg_Flags: Full}
    {[Callback], Type: Heal, Dmg_Flags: Full | Resurrect}
    {[Maintain], AoE: Tgt_Self, Type: Damage, DmgType: Dmg_Normal, Dmg: 1-25, Dmg_Flags: Scaled | Stunned}

    DmgTypes:
    Dmg_Electrical
    Dmg_Magic (this is fatigue damage)
    Dmg_Normal (hp damage reduced by DR)
    Dmg_Fire
    Dmg_Poison (adds this much to poison count)
    Dmg_Acid (used by corrosive acid item only??)

    Dmg_Flags:
    Scaled damage is MA/100 multiplied by the damage range in Dmg: (like 1-20 is 20 at MA 100)
    Stunned target is stunned
    Weap_Dropped target drops wielded weapon
    Full damage is equal to remaining hp (fatigue if dmg_magic)
    Scars as in beauty scars from crit fail
    Crippling as in the leg cripple from crit fail
    Resurrect like Resurrect
    Reanimate like Necromizer
    Death

    =Provided by Nataku=
    The following list is useful for trying to decipher the special functions used in many tech "spells" which dictate how tech items work. Note that even the game creators had very limited success getting many of their own tech items to work. So if nothing works, don't feel too bad.
    -------------------------
    // List of Magic/Tech "components"
    {10}{NoOp}
    {11}{AGoal}
    {12}{AGoalTerminate}
    {13}{AIRedirect}
    {14}{Cast}
    {15}{ChargeNBranch}
    {16}{Damage}
    {17}{Destroy}
    {18}{Dispel}
    {19}{Effect}
    {20}{EnvFlag}
    {21}{EyeCandy}
    {22}{Heal}
    {23}{Identify}
    {24}{Interrupt}
    {25}{Movement}
    {26}{ObjFlag}
    {27}{Recharge}
    {28}{Summon}
    {29}{Terminate}
    {30}{TestNBranch}
    {31}{Trait}
    {32}{TraitIdx} // No longer used
    {33}{Trait64} // No longer used
    {34}{Use}


    Example spells I've made:
    Note they are in my heavily changed version of Arcanum, so probably won't do the same effects from effect.mes as yours
    -------------------------
    Shapeshift into a werewolf:
    // 50 -- Lycanthropy
    {3500}{AoE: Tgt_Self}
    {3501}{Cost: 100, Maintain: (100 @ 1)} Info: friendly}
    //-3453--Cancels_SF: OSF_BODY_OF_AIR | OSF_BODY_OF_EARTH | OSF_BODY_OF_FIRE | OSF_BODY_OF_WATER | OSF_POLYMORPHED-
    {3503}{Disallowed_TSF: OSF_POLYMORPHED | OSF_BODY_OF_AIR | OSF_BODY_OF_EARTH | OSF_BODY_OF_FIRE | OSF_BODY_OF_WATER | OSF_STONED}
    {3504}{AI_Defensive: (2 @ 0)}
    {3505}{[Begin], Type: ObjFlag, obj_f_spell_flags, OSF_POLYMORPHED, FLAG_ON}
    {3506}{[Begin], Type: EyeCandy, 2, Add}
    {3507}{[Begin], Type: Trait, art_num, 31, Palette: 1} // 20 is sheep, 0 is wolf //, List: Animal_Weak-
    {3508}{[Begin], Type: Effect, 162, Add, Count: 30} //speed+30
    {3509}{[Begin], Type: Effect, 159, Add, Count: 90} //ac +90
    {3510}{[Begin], Type: Effect, 123, Add, Count: 4} //phys stats+8
    {3511}{[Begin], Type: Effect, 149, Add, Count: 4} //int wp -12
    {3512}{[Begin], Type: Effect, 163, Add, Count: 80} // raises crits
    {3513}{[End], Type: ObjFlag, obj_f_spell_flags, OSF_POLYMORPHED, FLAG_OFF}
    {3514}{[End], Type: Trait, art_num, -1}
    {3515}{[End], Type: Effect, 162, Remove, Count: 30}
    {3516}{[End], Type: Effect, 159, Remove, Count: 90}
    {3517}{[End], Type: Effect, 123, Remove, Count: 4}
    {3518}{[End], Type: Effect, 149, Remove, Count: 5}
    {3519}{[End], Type: Effect, 163, Remove, Count: 80}


    Tsunami:
    -----------
    // 29 -- Tsunami
    {2450}{AoE: Tgt_None, Radius: 5, [Begin]AoE: Tgt_Obj_Radius | Tgt_Obj_T_Critter | Tgt_Tile_Radius | Tgt_Obj_No_Self | Tgt_Non_Party_Critters, [End]AoE: Tgt_Summoned, [EndCallback]AoE: Tgt_Summoned}
    {2451}{Cost: 150, Resist: (stat_constitution @ -5), Range: 15}
    //Maintain: (1 @ 5)
    {2454}{AI_Offensive: 15}
    {2455}{[Begin], AoE: Tgt_Obj_Radius, Type: Damage, DmgType: Dmg_Normal, Dmg: 100-200}
    {2456}{[Begin], AoE: Tgt_Obj_No_Self | Tgt_Obj_Weight_Below_5, Type: AGoal, anim_goal_knockback}
    {2457}{[Begin], AoE: Tgt_Obj_No_Self | Tgt_Non_Party_Critters, Type: AGoal, anim_goal_knockback}
    {2458}{[Begin], AoE: Tgt_Tile_Radius, Type: Summon, Proto: 4033}
    {2459}{[Begin], Apply_AoE: Tgt_Summoned, Type: EyeCandy, 2, Add}
    {2460}{[Begin], Apply_AoE: Tgt_Summoned, Type: EyeCandy, 3, Add}
    {2461}{[End], Type: EyeCandy, 2, Remove}
    {2462}{[End], Type: EyeCandy, 3, Remove}
    {2463}{[End], Type: EyeCandy, 2, Add, Play: Reverse | End_Callback} // Dissipating
    {2464}{[Callback], Type: ObjFlag, obj_f_flags, OF_DONTDRAW, FLAG_OFF}
    {2465}{[EndCallback], AoE: Tgt_Summoned, Type: Destroy, Summoned Object}


    Mental Combat
    ------------------
    // 38 -- Mental Combat
    {2900}{AoE: Tgt_None, [Begin]AoE: Tgt_Obj_T_Critter | Tgt_Obj_No_ST_Critter_Animal | Tgt_Obj_No_ST_Critter_Dead | Tgt_Obj_No_ST_Critter_Mechanical | Tgt_Obj_No_Self, [Maintain]AoE: Tgt_Self | Tgt_Obj_T_Critter, [End]AoE: Tgt_Object}
    {2901}{Cost: 100, Maintain: (10 @ 1), Range: 3, Info: aggressive}
    {2903}{No_Stack: 1}
    {2904}{AI_Defensive: (4 @ 1)}
    {2905}{[Begin], Type: Damage, Dmg_Normal: 1-20, Dmg: 1-20, Dmg_Flags: Scaled}
    {2906}{[Begin], Type: Damage, Dmg_Flags: Stunned}
    {2907}{[Begin], Type: EyeCandy, 2, Add}
    {2908}{[Maintain], AoE: Tgt_Obj_T_Critter | Tgt_Obj_No_ST_Critter_Animal | Tgt_Obj_No_ST_Critter_Dead | Tgt_Obj_No_ST_Critter_Mechanical | Tgt_Obj_No_Self, Type: Damage, DmgType: Dmg_Normal, Dmg: 1-40, Dmg_Flags: Scaled | Stunned}
    {2909}{[Maintain], Type: EyeCandy, 2, Add}
    {2910}{[Maintain], AoE: Tgt_Self, Type: Damage, DmgType: Dmg_Normal, Dmg: 1-25, Dmg_Flags: Scaled | Stunned}
    {2911}{[Maintain], Type: EyeCandy, 2, Add}
    {2912}{[End], Type: Damage, Dmg_Flags: Stunned}
    {2913}{[End], Type: EyeCandy, 2, Remove}
    {2914}{[End], Type: EyeCandy, 2, Add, Play: Reverse} // Dissipating
     
  3. Leonidus

    Leonidus Member

    Messages:
    115
    Likes Received:
    0
    Joined:
    Dec 4, 2011
  4. Leonidus

    Leonidus Member

    Messages:
    115
    Likes Received:
    0
    Joined:
    Dec 4, 2011
  5. Leonidus

    Leonidus Member

    Messages:
    115
    Likes Received:
    0
    Joined:
    Dec 4, 2011
    Reserved for future use. Figured have a section on general/undatting/setup, then weapons, armor, spells/effects, and monsters.
     
  6. The Pigeon

    The Pigeon Member

    Messages:
    305
    Likes Received:
    5
    Joined:
    Nov 28, 2007
    Could you give me a step by step guide of making an example custom armor or sword?

    I know there exist word documents detailing custom items but it'd be cool to have a step by step for when I get that far in making my custom module. If not, I'll be working on my own eventually, but that'll be a long time from now.
     
  7. Leonidus

    Leonidus Member

    Messages:
    115
    Likes Received:
    0
    Joined:
    Dec 4, 2011
    My posts are going to cover that. I'll give you a quick overview right now so you don't have to wait.

    First you have to undat the arcanum .dat files so you can get the description.mes file. I use dbmaker for this.

    download dbmaker from terra arcanum:
    http://www.terra-arcanum.com/downloads/arcanum/tools/dbmaker.zip

    For dbmaker, you have to make a new folder, place/copy the .dat file you want into the new folder, copy the dbmaker.exe there, and create a shortcut of the dbmaker exe. Then right click the shortcut and go to properties, and add in the target line -u "nameoffile.dat"

    For example: -u "arcanum.dat"
    will undat Arcanum.dat if that is added to the target line of the shortcut to dbmaker.exe which is in the same folder as the Arcanum.dat.

    Arcanum5.dat has the most useful files.

    What you want is the mes folder, find description.mes (from the arcanum dats you just undatted)

    Description.mes shows you what the .pro files in Arcanum\Data\proto actually are. NOTICE THE VALUES ARE DIFFERENT, they are offset by 20. Go the beginning of the 6000s in both description.mes and proto folder to see what I mean.

    Now that you can know which .pro files are what item, you can now edit them.

    6000s are weapons, 8000s are armors. Some things which are still offensive like grenades, dynamite, or chemistry stuff are in the item sections.

    download the qtscribe editor here:
    http://radzh.game-alive.com/download/qtScribe.0.8.zip

    relevant threads to qtscribe:
    http://arcanum.game-alive.com/forums/viewtopic.php?f=11&t=54
    http://www.terra-arcanum.com/phpBB/viewtopic.php?p=216468


    Use qtscribe editor on the .pro file you want to edit

    You have to ALWAYS click save after making a change in qtscribe BEFORE going to the next proto file.
    DO NOT USE MOUSE WHEEL SCROLLING in qtscribe because it can change the values of the fields (as if you are trying to cycle them up/down with your middle mouse wheel).

    In 'Scripts' you can add extra effects. The most useful is
    Wield On - script number 28012 - 0 amount# effect.mes# 0
    Wield Off - script number 28013 - 0 amount# effect.mes# 0

    This adds an effect when worn, from effect.mes with the second data value being the amount of that effect added. You can see this kind of thing on gloves of dexterity.

    Obviously, many things will work on some items but not other items. You have to figure out all of that by experimentation.

    BE WARNED, PROTO FILE EDITING IS THE MAIN SOURCE OF CRASHING AND INSTABILITY. If you get to a certain part and the game crashes, or you open your inventory or a chest or a shop and the game crashes, it's probably some item you edited. Particularly when you add scripts. Do not add scripts to guard armors.
     
  8. Leonidus

    Leonidus Member

    Messages:
    115
    Likes Received:
    0
    Joined:
    Dec 4, 2011
    Updating not obvious from editing, so posting here to let people know.
     
  9. The Pigeon

    The Pigeon Member

    Messages:
    305
    Likes Received:
    5
    Joined:
    Nov 28, 2007
    Thank you very much, I'll give it a go and let you know how it turns out.
     
  10. Mr.Mole

    Mr.Mole New Member

    Messages:
    15
    Likes Received:
    0
    Joined:
    Jan 14, 2013
    I am starting to add new spells myself, some from Harry Potter, shields similar to those in Morrowind, etc. I haven't read through everything you've posted, but I am hoping that I can learn a few things from it. I am working on a "Guide to Editing Things," sort of a "If you didn't figure it out while reading the WorldEd manual and doing AMTUT, here you go" document. Please, keep making updates!
     
  11. The Pigeon

    The Pigeon Member

    Messages:
    305
    Likes Received:
    5
    Joined:
    Nov 28, 2007
    Sounds good, I look forward to reading it!

    And don't worry, I'll keep working on Arcanum stuff, just been taking a break for a while. You should check out some of ChaosWizards98's amtut videos as I he's going to be putting in stuff not included what DarkUnderLord wrote. I'll be checking it out again myself on the weekend if I have time.
     
  12. Nataku

    Nataku Member

    Messages:
    243
    Likes Received:
    1
    Joined:
    Jun 19, 2011
    Hi,
    First, thanks a lot for the tutorial. I had a matter with the shocking staff's spell :
    I wondered why it doesn't stop after one shot.
    I finally found a solution, even it's not perfect :
    I had a duration of one second, so thanks to the No_Stack: 1, it can't be called more than once per second per target :
    So I have two questions :
    -Do you know the code for use fuel instead of batteries. I guess we have to change "Type: ChargeNBranch" but what am I supposed to write ?
    -Do you have another solution to stop it without time's restriction ? (If you don't know, it doesn't matter : it sounds realist weapons need a little time to charge)

    EDIT : I doubt I could use but I found the file where ChargeNBranch is noted :
    // List of Magic/Tech "components"
    {10}{NoOp}
    {11}{AGoal}
    {12}{AGoalTerminate}
    {13}{AIRedirect}
    {14}{Cast}
    {15}{ChargeNBranch}
    {16}{Damage}
    {17}{Destroy}
    {18}{Dispel}
    {19}{Effect}
    {20}{EnvFlag}
    {21}{EyeCandy}
    {22}{Heal}
    {23}{Identify}
    {24}{Interrupt}
    {25}{Movement}
    {26}{ObjFlag}
    {27}{Recharge}
    {28}{Summon}
    {29}{Terminate}
    {30}{TestNBranch}
    {31}{Trait}
    {32}{TraitIdx} // No longer used
    {33}{Trait64} // No longer used
    {34}{Use}

    Actually, I doubt there is a line for using fuel in spells, Troika doesn't seems to have needed it.
     
  13. Nataku

    Nataku Member

    Messages:
    243
    Likes Received:
    1
    Joined:
    Jun 19, 2011
    And, btw, I have another matter. I succeed triggering spells when a critter attack with a specific item ("ItemTriggers: Target_Hit | Target_Attacker") but I wish attach that spell to gloves.
    I put it on the slot "spell 1", it is triggered during each attack, no matter until that BUT... It's triggered even the critter have a weapon, this is not what I wished.
    So : Is there a code in spell to check that critter have weapon=1 (unarmed) ?

    I thought to some others solutions but no one really satisfy me :
    -I could transform gloves with no spells in the "enchanted" ones (transform into basic prototypes) only if the players has no weapons (and check it every second to reverse it if the player have weapon), it needs creating protos but it seems to be the better way
    -I could check the weapon stat by a script before attacking but I don't know how to do : the script point "HIT" and "CRITTER HITS TARGET" can't cancel any effect :
    -I could make gloves are not wielded if the player have a weapon but, once again, I don't know how to do (neither how to make he can't wield weapons with gloves)
    -I can make these gloves are in fact a weapon (like "trackgloves", I don't really know I could I translate "Surgants")

    So, does anyone have the answer to the first question. Or just tell me what solution do you think better (or give me your own :) )

    Thanks for everything
     
  14. Leonidus

    Leonidus Member

    Messages:
    115
    Likes Received:
    0
    Joined:
    Dec 4, 2011
    I don't have a lot of successful experience messing with the complicated triggers that were used in tech items because a lot of them simply wouldn't work well no matter what I tried. This was all a long time ago now so it's kind of fuzzy to recall what I did that worked. Never did get that damn regen jacket to do anything useful in my own mod.

    For using fuel, I know for sure that the charge function works, but if you really can't find anything for fuel reduction on hit within the effect.mes codes, it would be worth your while to look at editing a custom script using one of the script editors. This is how they implemented a lot of the special effects for cursed items.

    Off the top of my head, I do recall an objflag equipped or somesuch being used. Might be a way to use that to solve your gloves problem. Also, could make the gloves an actual weapon and edit them to use glove art. A script is always worth investigating once again.

    I wish I had better answers for you, but as I said, I spent many maddening hours trying to mess with these special parts of the effect file without much appreciable result. If you notice the way troika uses them so limitedly in their own items, it seems even they were having problems getting most of them to do something meaningful.

    As far as updating this guide goes, it already has detailed basics, item editing, and spell editing, so my plan was to add some schematic info next whenever I am bored enough to get around to it. Monster editing is pretty straightforward but I might detail it here for ease of the other interested players.
     
  15. Nataku

    Nataku Member

    Messages:
    243
    Likes Received:
    1
    Joined:
    Jun 19, 2011
    Re:

    Actually, I couldn't find any fuel consumption in spellList.mes. The two only weapons that consume fuel in Arcanum are, I thing, the flame thrower and the grenade launcher. The flame thrower has no spells and the grenade launcher has a spell which doesn't includes the fuel consumption. So I guess I will have to create a proto, even it can't hit at all without ammo.
    I found no script line which get how many ammo a obj have, and the fuel has no internal.

    I found it but it's only about attachee item (ItemTriggers: Item_Used AND ItemTriggers: Wear | Unwear).
    I couldn't find anything concerning weapon but I just remeber anything interesting : Half Ogers can't handle pistols. Doesn't anything couldn't break the code used to do it ? If I could replace the conditions by "wielding gloves" and pistols by "weapons", it could work...

    I thougt to it. The only matter is that player could wield another gloves pair.

    Yeah. Thanks for your help. I'm not really blocked because I have some possible solutions for every problems, even they aren't perfect.
    No idea concerning that ?
     
  16. Muro

    Muro Well-Known Member

    Messages:
    4,182
    Likes Received:
    22
    Joined:
    May 22, 2007
    Re: Re:

    In case looking it up will be useful for you, Bronwyck's Gun also consumes fuel.
     
  17. Nataku

    Nataku Member

    Messages:
    243
    Likes Received:
    1
    Joined:
    Jun 19, 2011
    Re: Re:

    Ooops, I forgot mentionned it :frownyes: It noticed it too but it has no Spell attached :minigun:
     
  18. Leonidus

    Leonidus Member

    Messages:
    115
    Likes Received:
    0
    Joined:
    Dec 4, 2011
    Kept thinking about this. Found some more things to consider for you:

    From the chapeau of magnetic inversion part of spelllist.mes we have:

    // 48 -- mtTechMagneticInversionCharge [Item: Magnetic Inversion Charge]
    {12350}{AoE: Tgt_Obj_T_Critter}
    {12351}{Cost: 0, Maintain: (0 @ 5), ChargesFromCells: 1, Info: friendly}
    {12353}{No_Stack: 1}
    // If can't charge, terminate early
    {12355}{[Begin], Type: ChargeNBranch, Cost: 1, Branch: 4}
    // If was able to charge, restart the effect
    {12356}{[Begin], Type: ObjFlag, obj_f_spell_flags, OSF_MAGNETIC_INVERSION, FLAG_ON}
    {12357}{[Begin], Type: EyeCandy, 2, Add, Play: Check_Already}
    {12358}{[Begin], Type: Terminate}
    // Turn it off
    {12359}{[Begin], Type: ObjFlag, obj_f_spell_flags, OSF_MAGNETIC_INVERSION, FLAG_OFF}
    {12360}{[Begin], Type: EyeCandy, 2, Remove}
    {12361}{[End], Type: ObjFlag, obj_f_spell_flags, OSF_MAGNETIC_INVERSION, FLAG_OFF}
    {12362}{[End], Type: EyeCandy, 2, Remove}

    Notice:
    {12355}{[Begin], Type: ChargeNBranch, Cost: 1, Branch: 4}

    and

    {12358}{[Begin], Type: Terminate}
    // Turn it off

    What does Branch: 4 mean? Perhaps it is after charge cost resolves, then the spell branches off to either the 4th line (which explains the text // If was able to charge, restart the effect) or the 4th line in the body of the spell (4th line beginning at the 5 line (12355) which would be 12358) and terminates the effect, explaining the text //turn it off.

    I think it is especially important to point this out because you might not know in your understanding of english that "branch" can mean something like "go into different directions." That is, its probably a kind of if/then trigger where if a charge is used, then do X, else if 0 charges then do Y.

    The problem with this? Chapeau of Magnetic Inversion famously doesn't need charges to do its effects. The creators had a horrible time getting all of this to work for them, and that item is a prime example. So it just might not simply work at all.

    Something else about the Shocking Staff spell line that is really glaring: there's no [End] line.

    So:
    1. Try using an [End] line.
    2. Try using {[Begin], Type: Terminate}
    3. Try using the branch function off the chargenbranch to refer to an end line or terminate line.
    The critical part is forcing the spell to actually stop.
     
  19. Nataku

    Nataku Member

    Messages:
    243
    Likes Received:
    1
    Joined:
    Jun 19, 2011
    Actually, that branch function seems to be useful but I don't understand something : normally, if player has no charges the spell is not casted. I checked it many times with the shocking staff spell. So it should have no utility in that kind of spell. Opposite of it, it could be the reason of the chapeau's mis-work. For the exact reason of its presence, I guess only Troika members could tell us :roll:

    THIS is really interesting. I will try it quickly.


    Your interpretation seems logic, but it miss me how to code the condition. I doubt I can test critter's weapon type with it.

    The two first solutions seems perfect (wonder why there is no [End] line), I didn't noticed it... :thumbup:
    For the third solution, I fear it "should" only works if player have no charges (but I could try if the other doesn't work).

    Thanks for your search. Hope it will finally works (I will post the result quickly)
     
  20. Nataku

    Nataku Member

    Messages:
    243
    Likes Received:
    1
    Joined:
    Jun 19, 2011
    Done the test : 1)I can't use an End line, actually its only for maintained spells, when they come to end or when they canceled. There is nothing to cancel at the end of a offensive spell.

    2)It had no effect. I fear the line doesn't work

    3)No effect too. I really don't know what it was suppose to do but it's still working with charges and doesn't works without.

    No way. I will see to give some other tries but for now, I had to continue CrossRoad (my brother will be back at home in two days)
     
Our Host!