DukeTheDragon Posted April 29, 2017 Share Posted April 29, 2017 (edited) After lots of frustration I have managed to narrow down why my script wasn't being saved after installing Geck 1.4 Powerup, however I am still confused about it. The function, which is in the GECK wiki, "say," does not work. I am trying to create a crier, and I used the Vangraff crier script as a base. scn 001MyCrierScriptbegin OnTriggerEnter if 001CrierREF.GetDead == 0 && 001CrierREF.IsTalking == 0 001CrierREF.say 001CrierTopics endifend Upon saving I get the error,SCRIPTS: Script '001MyCrierScript', line 6:Script command "001CrierRef.say" not found. Edited April 29, 2017 by DukeTheDragon Link to comment Share on other sites More sharing options...
dubiousintent Posted April 29, 2017 Share Posted April 29, 2017 (edited) I'm not a mod creator, but I know this much. First, you have to define your "reference variable" at the beginning of the script.ex: scn 001MyCrierScript ref 001CrierREF Then you have to set the variable to a reference, normally by using a "reference function" that returns a "Form-ID"ex: set 001CrierREF to GetPackageTarget Then you can use that reference in the remainder of your code. See the GECK page on "Reference Variables". As I recall, it is recommended that you do NOT begin variable names with numbers. It causes the GECK to confuse them with Form-IDs. (Eventually everything in the GECK is treated as a Form-ID or some other number.) Use the initials of your mod. That will keep them together in the various lists in GECK. Edit: If you haven't already, suggest you check out some of the tutorials in the "Scripting" section of the "Getting started creating mods using GECK" wiki article. -Dubious- Edited April 29, 2017 by dubiousintent Link to comment Share on other sites More sharing options...
DukeTheDragon Posted April 29, 2017 Author Share Posted April 29, 2017 I'm not a mod creator, but I know this much. First, you have to define your "reference variable" at the beginning of the script.ex: scn 001MyCrierScript ref 001CrierREF Then you have to set the variable to a reference, normally by using a "reference function" that returns a "Form-ID"ex: set 001CrierREF to GetPackageTarget Then you can use that reference in the remainder of your code. See the GECK page on "Reference Variables". As I recall, it is recommended that you do NOT begin variable names with numbers. It causes the GECK to confuse them with Form-IDs. (Eventually everything in the GECK is treated as a Form-ID or some other number.) Use the initials of your mod. That will keep them together in the various lists in GECK. Edit: If you haven't already, suggest you check out some of the tutorials in the "Scripting" section of the "Getting started creating mods using GECK" wiki article. -Dubious- This is not the issue, having followed a tutorial from a experience GECK user exactly, I've double checked everything. The issue is that the GECK is not seeing that its a command. I've tried saving the original script AS IS and it still gives me the error. Link to comment Share on other sites More sharing options...
Ladez Posted April 29, 2017 Share Posted April 29, 2017 Don't prefix your editor IDs with numbers, otherwise the script compiler can't tell it apart from a form ID. Link to comment Share on other sites More sharing options...
DukeTheDragon Posted April 29, 2017 Author Share Posted April 29, 2017 Don't prefix your editor IDs with numbers, otherwise the script compiler can't tell it apart from a form ID. Once again, this is also not the main cause as trying to resave the Vangraff Crier script did not have any effect. Link to comment Share on other sites More sharing options...
Ladez Posted April 29, 2017 Share Posted April 29, 2017 "Did not have any effect" is very unspecific. What effect are you referring to? Regardless, the numeric prefixes is indeed your issue, or at the very least the main issue. It's a widely known issue with the GECK script compiler. Link to comment Share on other sites More sharing options...
Mktavish Posted April 29, 2017 Share Posted April 29, 2017 (edited) Don't prefix your editor IDs with numbers, otherwise the script compiler can't tell it apart from a form ID. Once again, this is also not the main cause as trying to resave the Vangraff Crier script did not have any effect. Well you may have another problem , but using that "00" to prefix your script name is a definate problem.Some form ID's can work , like maybe the NPC's ref-ID starting with it , isn't causing any problems in this instance.But the fact that it can is reason enough to never use numbers in the first character , for ANY form-ID , Base / Ref or otherwise. So change those ID's ... then see what happens. Edited April 29, 2017 by Mktavish Link to comment Share on other sites More sharing options...
DukeTheDragon Posted May 1, 2017 Author Share Posted May 1, 2017 Don't prefix your editor IDs with numbers, otherwise the script compiler can't tell it apart from a form ID. Once again, this is also not the main cause as trying to resave the Vangraff Crier script did not have any effect. Well you may have another problem , but using that "00" to prefix your script name is a definate problem.Some form ID's can work , like maybe the NPC's ref-ID starting with it , isn't causing any problems in this instance.But the fact that it can is reason enough to never use numbers in the first character , for ANY form-ID , Base / Ref or otherwise. So change those ID's ... then see what happens. I'm going to change it later, but really, I'd like to focus on this main issue. Link to comment Share on other sites More sharing options...
DukeTheDragon Posted May 1, 2017 Author Share Posted May 1, 2017 Don't prefix your editor IDs with numbers, otherwise the script compiler can't tell it apart from a form ID. Once again, this is also not the main cause as trying to resave the Vangraff Crier script did not have any effect. *sigh* When I say no effect, I mean I get the exact same error as before, linking straight to the .say command. Link to comment Share on other sites More sharing options...
dubiousintent Posted May 1, 2017 Share Posted May 1, 2017 The "say" command is legitimate. So, it has to be a syntax problem with how you are using it. From the GECK page, you appear to be using the correct syntax, which why we are focused upon the variable names as they are a known problem, assuming the reference variable has already been initialized properly. Error messages are seldom "exact". They are "canned" and the editor picks a message to display based upon it's similarity to anticipated conditions. So they sometimes require "interpretation" with the understanding they are, at best, "guesses". So, please accept that we are focused upon the core problem based upon our experience. -Dubious- Link to comment Share on other sites More sharing options...
Recommended Posts