Jump to content

ORIGINAL Mod files will not compile, anyone ever had that problem?


christianerding2

Recommended Posts

Hello Modders,

 

I am having a strange problem. I can compile some scripts in the CK, but others not.

 

I was trying to make small modifiktions for practice, but on some *.psc compiling never worked, it was pure madness...

 

Then I found out that even the unchanged original source files did NOT compile.

 

Since that moment I am clueless...

 

 

AND I am talking about the original UNCHANGED scripts.

 

For example: Sands of time, sleeping module.

 

SOTSleepMCM.psc will not compile. SOTModule1Sleep.psc compiles correct.

 

Training Dummies Provide XP from Carl Corey:

 

TrainingDummies_Config.psc Failed

TrainingDummiesSpeech.psc Succeded

TrainingDummiesXP.psc Failed

 

also see picture

 

Am I missing something?? This scripts HAVE to work, otherwise the creators could not compile them!

 

Are there others compilers the modders might use?

 

I can not get into scripting, when even original scripts will not compile.

 

My CK version is 1.9.32.0

 

 

Thankfull for any advice or help,

 

Christian (who is beginning to lose his mind)

 

Edited by christianerding2
Link to comment
Share on other sites

I am not sure what you want to do, but if the scripts don't compile, you actually need to provide the script and the compile error. Otherwise, how would anyone know why they are not compiling?

Link to comment
Share on other sites

Well I can not provide much, but I will give all the information anyone needs, but as the pictures says it a simple "failed".

Papyrus log is equally usefull:

[06/03/2014 - 11:49:41PM] EditorPapyrus log opened (PC)
[06/03/2014 - 11:49:41PM] Memory page: 128 (min) 512 (max) 76800 (max total)

Script is correct because it is the original source files from "Training Dummies Provide XP" Mod. Consisting of:

TrainingDummies_Config.psc

TrainingDummiesSpeech.psc

TrainingDummiesXP.psc

 

What is interesting is, when I put all three files in a empty scripts\source folder, even "TrainingDummiesSpeech.psc" fails.

 

I present one of the failling scripts for reading, but I am sure they contain no errors, like said, they are original:

 

*********************

 

 

Scriptname TrainingDummiesXP extends ObjectReference
{ Increment skill XP slightly when practicing on dummies and targets }

GlobalVariable Property TrainingDummyBaseXP auto ; Base XP awarded for successful attack
GlobalVariable Property TrainingDummyVariableXP auto ; 0 to this number extra XP awarded each time
GlobalVariable Property TrainingDummyPowerMult auto ; Multiplier for power attack (doesn't work)

GlobalVariable Property TrainingDummyBonusEnable auto ; Disable distance bonuses by setting this to 0
GlobalVariable Property TrainingDummyMinDist auto ; Minimum distance for projectile attacks
GlobalVariable Property TrainingDummyBonusDist auto ; Distance at which a bonus will apply
GlobalVariable Property TrainingDummyBonusIncr auto ; Extra XP awarded based on this increment over bonus distance
GlobalVariable Property TrainingDummyBonusXP auto ; Amount of bonus XP award per distance increment
GlobalVariable Property TrainingDummyWarnTooClose auto ; If not 0, warn the archer if too close to target

GlobalVariable Property TrainingDummyMagicXP auto ; If not 0, award XP for destruction spells
GlobalVariable Property TrainingDummyPerSecondXP auto ; XP awarded per second for spells with duration > 0

GlobalVariable Property TrainingDummyBashBlockXP Auto ; If not 0, award Blocking XP for Bash attacks

Message Property TrainingDummyWarnTooCloseMessage auto

; **********************************************************************************************
; Examples:
; Attack with handheld weapon:
; Award BaseXP (could be 0) plus 0 to VariableXP extra (could be 0 either by seetting VariableXP to 0 or by 'rolling' a 0)
; Attack with a bow:
; Archer distance less than MinDist:
; 0 XP awarded
; Archer distance at least MinDist and less than BonusDist:
; Calculated as per handheld example above
; Archer distance greater than BonusDist:
; Calculated as per handheld example above PLUS BonusXP PLUS BonusXP for each BonusIncr units distance above BonusDist
; Attack with a duration 0 spell (i.e., Firebolt)
; Calculated as per handheld example above
; Attack with a spell with duration > 0 (i.e., Flames)
; PerSecondXP awarded for each second of duration
; **********************************************************************************************

Event onHit(ObjectReference akAggressor, Form akSource, Projectile akProjectile, bool abPowerAttack, bool abSneakAttack, bool abBashAttack, bool abHitBlocked)

; Debug.Notification("ouch")
If akAggressor == Game.GetPlayer()
; Debug.Notification("Hello Dovahkin")

; *******************************
; Calculate the basic XP to award
; *******************************
Int baseXP = TrainingDummyBaseXP.GetValue() as Int
; I guess power attacks don't register on dummies
if abPowerAttack
Debug.Notification("woah! power!")
baseXP *= TrainingDummyPowerMult.GetValue() as Int
EndIf
Int xp = baseXP + Utility.RandomInt(0, TrainingDummyVariableXP.GetValue() as Int)

; ********************************************************
; Discover the weapon type to see what kind of XP to award
; ********************************************************
Weapon akWeapon = akSource as Weapon
Int weaponType = akWeapon.GetWeaponType()
Int sourceType = akSource.GetType()
; Debug.Notification("Weapon type: " + weaponType)
; Debug.Notification("Source type: " + sourceType)
; Debug.Notification("Bash: " + abBashAttack)
Bool isATarget = self.HasKeywordString("TrainingDummyTarget");
; Debug.Notification("isATarget=" + isATarget)

if sourceType == 41
If weaponType > 0 && weaponType <= 4 && !isATarget
; Debug.Notification("OneHanded + " + xp)
Game.AdvanceSkill("OneHanded", xp as Float)

ElseIf (weaponType == 5 || weaponType == 6) && !isATarget
; Debug.Notification("TwoHanded + " + xp)
Game.AdvanceSkill("TwoHanded", xp as Float)

ElseIf weaponType == 7 || weaponType == 9
Int iArcherDistance = akAggressor.GetDistance(Self) as Int
Int iBonusDistance = TrainingDummyBonusDist.GetValue() as Int
Int iBonusIncrement = TrainingDummyBonusIncr.GetValue() as Int
Int iMinDistance = TrainingDummyMinDist.GetValue() as Int
Int iBaseBonusXP = TrainingDummyBonusXP.GetValue() as Int
Bool fBonusEnabled = TrainingDummyBonusEnable.GetValue() as Int != 0

If iArcherDistance >= iMinDistance
; Calculate distance bonus if not disabled (iBonusDist <= 0)
If fBonusEnabled ; used to be: iBonusDistance > 0
Int iOverBonusDist = (iArcherDistance - iBonusDistance) / iBonusIncrement
If iOverBonusDist >= 0
; Int iBonusXP = iBaseBonusXP + (iOverBonusDist * iBaseBonusXP)
; Debug.Notification("Distance " + iOverBonusDist + " over. Bonus = " + iBonusXP)
xp += iBaseBonusXP + (iOverBonusDist * iBaseBonusXP)
EndIf
EndIf

; Debug.Notification("Marksman + " + xp)
Game.AdvanceSkill("Marksman", xp as Float)

ElseIf TrainingDummyWarnTooClose.GetValue() as Int != 0
TrainingDummyWarnTooCloseMessage.Show()
EndIf
EndIf

ElseIf sourceType == 0 && weaponType == 0 && !isATarget && TrainingDummyBashBlockXP.GetValue() as Int != 0
; Assume shield bash. abBashAttack doesn't get set on dummies
; Debug.Notification("Block + " + xp)
Game.AdvanceSkill("Block", xp as Float)

ElseIf sourceType == 22 && !isATarget && TrainingDummyMagicXP.GetValue() as Int != 0
; This was a spell
Spell akSpell = akSource as Spell
int numEffects = akSpell.GetNumEffects()
int index = 0
While index < numEffects
MagicEffect effect = akSpell.GetNthEffectMagicEffect(index)
If effect.GetAssociatedSkill() == "Destruction"
Int duration = akSpell.GetNthEffectDuration(index)
If (duration > 0)
xp = duration * TrainingDummyPerSecondXP.GetValue() as Int
EndIf
; Debug.Notification("Destruction + " + xp)
Game.AdvanceSkill("Destruction", xp as Float)
EndIf
index += 1
EndWhile
EndIf

EndIf

EndEvent

Edited by christianerding2
Link to comment
Share on other sites

What I mean is, when you try to compile the scripts individually, you will receive error messages about why the script failed to compile, like if properties have not been defined, etc. That will indicate to you what the issue might be.

 

For future reference, please use spoiler tags for long lists of stuff so they won't clutter the screen.

 

Also, I am curious, but why are you trying to recompile scripts from mods? Have you made edits to them? If not, there shouldn't be a reason to recompile them.

Link to comment
Share on other sites

"Also, I am curious, but why are you trying to recompile scripts from mods? Have you made edits to them? If not, there shouldn't be a reason to recompile them."

 

That is the point, I did try to make a german translation for a few mods, by just exchanging english words to german, or altering the xp gain in the scriot by just changing !one! number.

 

It never compiled. :-P

 

I am not a total idiot, I did make mods for X3 Reunion and released a few translations and bugfixes for Skyrim which work.

 

I tried to narrow it down, but I could not.

 

THEN I even used the scripts fresh from the author AND it failed, too.

 

I KNOW it can't be but it IS!

 

Papyrus just hates me.

 

I enabled papyrus loggin. But it says nothing, no error message! Just a plain failed! (See picture in first post.)

 

That is what I can get from Skyrim\logs\ :

 

[06/04/2014 - 06:46:09AM] EditorPapyrus log opened (PC)
[06/04/2014 - 06:46:09AM] Memory page: 128 (min) 512 (max) 76800 (max total)

It is not really helpfull, is there a way to see WHY it fails??

 

Are there any settings in the CK, I should change I run the german version.

 

You can try it by yourself! Copy the script above in the CK and try to compile it!

 

It will fail! If not I am the only one having this problem.

 

Greetings, Christian

 

P.S. Did give spoiler tagging a try, isn't work either, does not hide Text, only one empty line.

One of these days...

Edited by christianerding2
Link to comment
Share on other sites

Like I said, try to compile the scripts individually in the CK, rather than all at once. This will provide the error log that indicates specifically why the scripts have failed to compile (probably because properties have not been defined, you need to do this after you edit the script). The Papyrus log is not going to give you any information about why the scripts have failed to compile (that's not what's its for).

Edited by ripple
Link to comment
Share on other sites

Hello Ripple,

 

since you do not give up to help me, I do not give up to provide helpfull information.

But I don't understrand this:

"This will provide the error log that indicates specifically why the scripts have failed to compile"

"The Papyrus log is not going to give you any information about why the scripts have failed to compile (that's not what's its for)."

 

What do you mean are there two different logs?

 

Mine is from Skyrim\logs\

After compile failed, there ist nothing new in here.

I did OF COURSE complie the files individually, again no error log just a simple failed on the compilation try.

 

At least I could narrow down things!

 

This is the first problem:

 

Scriptname SOTSleepMCM extends SKI_ConfigBase

 

A script with this single line in it and nothing more will not complie.

 

When I change it to this it complies:

 

Scriptname SOTSleepMCM extends Quest

 

But this of course ruins the original script.

 

So the problem seems that it is a MCM script.

It seems that is has to be complied in a special way...

Edited by christianerding2
Link to comment
Share on other sites

Ok, you didn't mention you were trying to compile an MCM script before? MCM requires SKSE, so I would say 1) make sure you have SKSE installed and 2) make sure your SKSE is up to date. I don't think there are any extra steps required to launch SKSE in the CK (just launch CK normally, with SKSE installed), but I could be wrong...

 

By 'error log', I mean when you try to compile a script individually in the CK, if the script fails to compile, the CK will bounce a number of error messages indicating -why- the script failed to compile.

 

Incidentally, the scripts you are trying to recompile, are they embedded in BSA's or did you extract the source files (psc)?

Link to comment
Share on other sites

Let's condense some of the information...

 

When you compile a script, individually or in a group, if it fails there is information available that will tell you what the problem is. In the case of an individual compile, it will be displayed automatically. In the case of a group file, the information will be shown when you select the failed file in question (see image in first post, selecting one of the failed ones would have shown the compiler errors in the box below).

 

Some scripts require DLC scripts to communicate with, if the DLC scripts are not copied from their individual source folder into the source folder designated for use with the Creation Kit these scripts will fail. (see SkyrimEditor.ini and the designated folder for the following entry:

[Papyrus]
sScriptSourceFolder = 

Please note, that you may change that folder assignment if you wish and copy-paste all source scripts into one singular location).

 

Some scripts require SKSE, if SKSE is not properly installed these scripts will fail. See Gopher's video for proper installation procedures (his install method is proper for both non-mod author and mod author setups alike)

 

Some scripts which use SkyUI's MCM, require that the latest SDK (software development kit) be installed during compilation and initial script setup.

 

************************************************

 

 

 

Incidentally, the scripts you are trying to recompile, are they embedded in BSA's or did you extract the source files (psc)?

FYI - The Creation Kit will not allow you to even attempt to compile a script that does not have a loose version available. Also, the Creation Kit will not allow you to access property values without an accessible PEX file, either in a BSA file designated in the SkyrimEditor.ini or loose in the scripts folder.

Link to comment
Share on other sites

I have to thank for all that good advice.

 

With this information I learned much more about compiling.

 

You are both totally right.

 

I downloaded the SDK-Kit for MCM scripts and now they compile flawless and I can try to get my translation of the script done.

 

 

Thx a lot to both of you, for patience and real helpfull advice.

 

 

** Problem solved **

 

 

 

Greetings from Germany,

 

Christian (returning to sanity)

Edited by christianerding2
Link to comment
Share on other sites

  • Recently Browsing   0 members

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