Jump to content
  • 0

Howto: Use CreationKit from MO


Tannin

Question

An alternative to the following instructions you can try the papyrus wrapper here: https://forums.bethsoft.com/topic/1513065-rel-advanced-papyrus/

As you might know, running the CreationKit from MO works like with any other executable and MO should discover the CK automatically if it's installed.
But since the Papyrus Script Compiler is a 64bit executable and MO doesn't support those, you can't compile scripts from the CK.
 
Except you can, because as it turns out, the PapyrusCompiler is in fact a "Any CPU" executable, which means it contains binaries for 32bit as well as 64bit. So if we could convince the compiler to run in 32-bit mode even on a 64-bit windows we win.
And here is how you can to that:
a) Download the "windows sdk with .net" package from the microsoft page. There are multiple versions of the package, it doesn't really matter which one you get but here is a very current one: https://msdn.microsoft.com/en-us/windows/desktop/bg162891
b) Start the downloaded installer. Take note of the install location (I'll assume "C:program files (x86)Microsoft Kitswindows8.1a"). During the installation you can select the features you want to install. You only need ".NET Framework 4.5.1 Software Development Kit" (or similar if you downloaded a different package).
c) open a command prompt (in the search field of the start menu type cmd then click on cmd.exe)
d) type in the following: "C:/program files (x86)/Microsoft Kits8.1a/bin/NETFX 4.5.1 Tools/corflags.exe" /32bit+ "c:/Program Files (x86)/steam/steamApps/common/skyrim/papyrus compiler/papyruscompiler.exe"
(This makes the papyruscompiler always run in 32-bit mode. If you ever want to undo that, run the same command with /32bit- instead of /32bit+)
 
Now with the current version of MO (1.2.14 and earlier) there is one more step because currently MO has a workaround for the papyruscompiler that doesn't work 100% and won't be needed with this solution
 
e) Download this hxxp://no_longer_needed and drop it into your MO directory. This is the same hook.dll as MO 1.2.14 but with the workaround removed.
 
From now on you should be able to run CK from MO and compile scripts without a problem.
 
Please let me know if this works for you.

  • +1 5
Link to comment
Share on other sites

Recommended Posts

  • 0

problem solved. post deleted.

For future reference, please do not delete your posts. We're information hogs around here! Please keep your posts intact and post the solution so that others may benefit who may be experiencing the same problems. Sharing and helping is part of the backbone of this community!

Link to comment
Share on other sites

  • 0

Compiling from Mod Organizer seems to only work for scripts in the game directory. Is this how it's supposed to work, or should I be able to compile my scripts and have them saved to the folder from which they originated (or maybe the overwrite directory)?

 

I found a workaround by setting up Notepad++ to compile successfully from Mod Organizer's mod folders, and that works pretty well. I work with scripts in Notepad++ almost exclusively, so it's how I prefer to edit them anyway. I just wasn't sure if this was how it was supposed to work.

 

Also, in case anyone is interested and doesn't already have it working, should I post files I used for compiling from MO's Mod folders? In case the answer is yes, here it is. Use this instead of the bat file on the CK website.

@echo off
set game="C:\Games\Steam\steamapps\common\Skyrim"
set out=%2
"%game%\Papyrus Compiler\PapyrusCompiler.exe" %1 -f="TESV_Papyrus_Flags.flg" -i="%game%\Data\scripts\Source";%2 -o=%out:Scripts\Source=Scripts%
pause

Obviously replace the game path with your game path. It'll import from both the game's source scripts and the source folder where the script to be compiled are located, and it'll output to the parent folder where the script is located. To make it work, though, you'll need to use this in N++'s command:

"C:\Games\Steam\steamapps\common\Skyrim\Papyrus Compiler\ScriptCompile.bat" "$(FILE_NAME)" "$(FULL_CURRENT_PATH)"

Once again, replace the Skyrim folder path with your own. The only change from the CK website version is the last parameter was changed from "$(CURRENT_DIRECTORY)" to "$(FULL_CURRENT_PATH)"

 

Using this, I can edit the script in N++ and once compiled, the changes are immediately seen in the CK when it's running through MO, and the scripts are loaded from and saved to the mod's folder rather than the game's folder.

 

Of course, all of this is pointless if it was supposed to work like that from the beginning and I just messed it up somehow...

Edited by Xander9009
Link to comment
Share on other sites

  • 0

No, I'm talking about running the CK through MO. I should have been clearer about that. Notepad++ was just a workaround which does what I want it to.

 

When I try to compile scripts in the CK through MO, they're put in the game folder rather than in the overwrite folder, and they only compile if they already exist there (in the game folder). With the bat file I made, I can compile with N++ without running it through MO and the scripts are put in the correct place (the mod's folder where the script originated). The fact that it's not running through MO (meaning MO isn't locked, so I can still run the CK simultaneously) makes it very easy to modify the scripts in N++ while the CK is opened through MO and have the script changes take effect immediately without anything going to the game folder.

 

So, to be perfectly clear, Notepad++ is not the problem at all here. The problem here is compiling scripts in the CK when the CK is run through MO.

Link to comment
Share on other sites

  • 0

False-positive. You'll have to add it to your exception list.

 

Off Topic:

On another note, tech to user...Norton is terrible. Right there with McAfee. As a computer tech, when dealing with issues for clients if there are malware issues on the system, it is because either Norton or McAfee was installed. I say "was", because I remove it from every system I encounter with it. Don't waste your money when it's time to renew. Go with the free options. I personally use MS Security Essentials. If you follow best practices (like don't use Internet Explorer, don't download questionable software and emails, and install an ad blocker in your browser), then Essentials is all you need.

Link to comment
Share on other sites

  • 0

 

Off Topic:

On another note, tech to user...Norton is terrible. Right there with McAfee. As a computer tech, when dealing with issues for clients if there are malware issues on the system, it is because either Norton or McAfee was installed. I say "was", because I remove it from every system I encounter with it. Don't waste your money when it's time to renew. Go with the free options. I personally use MS Security Essentials. If you follow best practices (like don't use Internet Explorer, don't download questionable software and emails, and install an ad blocker in your browser), then Essentials is all you need.

Absolutely +1

 

In addition I would recommend adding OPEN DNS to the list of "best practices".

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site, you agree to our Guidelines, Privacy Policy, and Terms of Use.