Jump to content

Creation Kit Perforce Integration


1shoedpunk

Recommended Posts

I am a project lead on Beyond Skyrim (in Cyrodiil) and I have been trying to figure out if it is possible to activate Perforce integration in Version Control in the Creation Kit. If it is not, I wanted to see what workaround other large projects might have used to manage and merge in their scripts. I am sending out a couple PMs to members of other projects, but if anyone else here has experimented with this or has knowledge of Perforce, feedback would definitely be welcome.

 

I have gotten to the stage where I have a Perforce server and client both running, a Perforce workspace set up in my data folder (though I'm not sure if it's set correctly) and the ability to open up the Creation Kit with Perforce enabled and select a workspace in my preferences. However, I get an error message "Perforce workspace does not contain a script folder, Papyrus scripts will not be checked in or out." and the following error in my perforce log file:

 

[11/01/2013 - 07:00:28AM] Perforce log opened (PC)

[11/01/2013 - 07:00:28AM] //TESVData/current/Source/Scripts/... - must refer to client 'Papyrus'.
Papyrus is the name of the workspace, but the internet seems to suggest that the error is due to me having the wrong directory set up or the workspace set up wrong.
I've copied all of my current notes below. Most are gleaned from the Creation Kit's code and supporting documents in the Skyrim folder. I do need to take a look at the .xml files in the DialogueViews folder, as they may provide a bit more information:

A note on the below = %s seems to be short hand for the formid. It is used in programming as a placeholder for an 8 digit number, in this case an entry in hex. I cut out a significant amount of "gibberish" but it's possible that someone with a programing background might be able to glean a bit more from it than I was.


The following must be set in SkyrimEditor.ini
[Papyrus]
sScriptSourceFolder = "Data\Scripts\Source"
sScriptCompiledFolder = "Data\Scripts\"
sCompilerFolder = "Papyrus Compiler\"
bPerforceEnabled = 1
iMinMemoryPageSize = 128
iMaxMemoryPageSize = 512
iMaxAllocatedMemoryBytes = 76800 ;75kb

Download Perforce from here: http://www.perforce....erforce/20-User
Install a server and a client. This might work similar to Source Control or setting it
up for the UDK if I'm correct



Error messages
Perforce workspace does not contain a script folder, Papyrus scripts will not be

checked in or out.

Perforce workspace and/or username is invalid. Reverting settings.
Perforce Settings.

Invalid Perforce workspace selected.

Reverting changes..

Perforce.
Script fragment prefix is too long, must be 4 characters or less. Extra characters

trimmed

Script fragment prefix has invalid characters. Bad characters replaced

Script Settings

New Starting Topic ID.

Topic.New Branch ID
This will remove all other links from this info.

Checkout was unsuccessful.

.%s%08X.xml - (seems to point to one of the .xml files (or have the value of the file auto-filled based off of some condition) in the DialogueViews folder. I can't search within files for .xml files yet but will be looking for all things Perforce related shortly.)

Could not update the selected dialogue view in Perforce

Updated dialogue view %s (%08X).%s%temp_view.xml....

</Diagram>
TableOutPattern
TableInPattern
bPerforceEnabled:Flowchart

//TESVData/current/Source/DialogueViews/
sPerforceFolder:Flowchart
bDialogueViewRouteArrows:Flowchart
iDialogueViewNodeVicinityCost:Flowchart
iDialogueViewArrowStyle:Flowchart
iDialogueViewArrowSegmentCount:Flowchart

Unable to update scripts from Perforce
File list was trimmed
The following scripts need to be externally resolved
Newer scripts are available in Perforce, update?



Papyrus Perforce Interface

bPerforceEnabled:Papyrus

 

(below seems to indicate where the scripts folder should be, but I tried setting a workspace up there (TESVData is the Skyrim folder) and I got an error message. It's possible that the contents need to be in a specific format or something needs to be done to the contents of the folder in Perforce for the CK to recognize the Scripts folder properly. It could be tied to the p4com.dll, but I am not sure. The Creation Kit will auto-load any p4com.dll that is placed in the Skyrim folder so the one I'm using may not be 100% correct *but* it is something we can experiment with. The key to deciphering the pf4com.dll might be in the .xml files that the CK calls on when loading papyrus version control.)

//TESVData/current/Source/Scripts/
sPerforceScriptFolder:Papyrus

Scripts/
pex

Data/
Data/

 

(Below seems to be the same function as the check-in comments for regular VC. It even writes to the same file)
Perforce Check-In Comment

checkin_comments.txt

 

(Below seems to be the regular script creation window and has some references to how it ties in to Perforce. Probably won't be helpful getting it set up but it should help explain how to use it once it is)

Scriptname

Hidden
Conditional
extends (the xml file referenced earlier)

Unable create the new script file

New Script

NewScript

Invalid doc string

Doc string may not contain any { or } characters

Invalid extends script name or name too long

The name must start with an underscore or letter and be followed by underscores, letters, or numbers

The extends script does not exist, please pick one that does

Cannot have an empty name

Invalid script name or name too long

The name must start with an underscore or letter.and be followed by underscores, letters, or numbers.

That script already exists, please choose a different name

You must enter a script name.

Rename Script

Script already exists, please choose another name

Script Rename Error.%s*.psc..(..€È‡.kRç.kRç.kRç.`(..

°È‡.kRç.kRç.kRç.kRç.kRç.kRç.kRç.kRç.kRç.kRç.kRç.¨(..àȇ.`ø†[email protected]...

Unable to initialize script virtual machine. Perforce username and/or workspace is missing, invalid, or does not have the scripts folder. Please check your preferences

 

(more statements on where the Scripts folder should be. I've tried Data/Scripts too. It's maddening)
/Source/Scripts/

sScriptSourceFolder:Papyrus.Data/Scripts/

sScriptCompiledFolder:Papyrus.

Papyrus Compiler/
sCompilerFolder:Papyrus.

Papyrus Script Pick Window..[New Script]

 

Unable to add the new script file to perforce

 

Add Script

 

ActiveMagicEffect

Script Name..%s.

<invalid list index>....Create a new script file....<no documentation string>...Add script to %s

(%08X).Add script to alias %s on quest %s (%08X)...¨-....ˆ.

€.ˆ.Script..Status...psc....ø-..kRç.@... .ˆ.Œ...Ð.ˆ.p.ˆ.<nothing selected>.../..Script

File.Succeeded...ø...€.ˆ. %ˆ.

 

Unable to get script name...Uncompiled..H/..°"ˆ.P.ˆ...A..€?.. A..€?

 

Papyrus Script Edit Window..Compiling.......Compile Succeeded...Compile Failed..Saving......Save Succeeded..Save Failed.Save Canceled...Are you sure you wish to discard your changes?..Exit Warning....msctls_statusbar32..Save failed, make sure the file is not read only and/or checked out.....

 

Save Error..Compilation failed - are you sure you want to save?. (READ ONLY)....˜/...<ˆ.P<ˆ.Editing fragment attached to %s.<nothing>

 

Editing result script attached to %s

 

Editing script %s

 

Papyrus Script Error Window

 

.è/.. Eˆ. Dˆ.p0..@dˆ.pʇ.0Tˆ.À0.. aˆ.pʇ.Àaˆ.; <unable to obtain fragment code>

 

Unable to access compiler (internal interface is NULL)

 

<no fragment>...This will delete the fragment entirely, continue?

 

Fragment delete.; Code failed to copy from old fragment.Advanced

Result Script

Papyrus Fragment

 

Unable to create or write temporary file for compilation

Unable to read in script source code

 

Papyrus Script

 

Unable to launch external editor for script

Script inherited from parent

Script inherited and deleted locally

Script inherited and edited locally

Script added locally

Script added and edited locally.

Status: Script "%s" had errors while loading, it will not be added to the object

The new script is a conditional script, but another conditional script is already attached. This may result in odd behavior. Continue?

 

Remove Script

 

Undelete Script

Undelete

Are you sure you wish to remove ALL scripts?

 

Attached Scripts

Unable to check out script or add it to perforce.

Unable to check in script to perforce

Are you sure you wish to revert the selected script? Your changes will be lost.

 

OnScriptDblClk:Scripts.Papyrus

Manager Window %d...Papyrus Manager Window %d Filter....

Papyrus Manager Window
Column Order
Papyrus Manager Window
Column Size

Any of the below will result in a "Unable to add script to perforce" error message.
<bad list ID>
<not compiled>
<no docstring>


Has Source
Compiled

Papyrus Properties Window
Papyrus Properties Window Column Size

<no properties>
<4..इ.P5‰.Œ4..0.‰.ð.‰.(5..0.‰...‰.Int Value:..„5..0.‰...‰.Float Value:....à5..0.‰.`.

‰.String Value:...<6..0.‰. .‰.”6..Ð.‰.`:‰.à6..€.‰...‰.Invalid identifier for the property name

The property name must start with an underscore or letter and be followed by underscores, letters, or numbers.


Cannot have an empty type...%s[] (possibly a box to type in the type?)

Invalid script name for property type

The name must start with an underscore or letter and be followed by underscores,

letters, or numbers.

New Property
<<Unknown>>.Alias_....%s Property %s %s Auto %s %s..%s..= %s

Property unmodified
Property edited locally
Property inherited and edited locally
Property inherited from parent
Property inherited and cleared locally

Array Element

Property type: <nothing selected>
Property type: %s

Edit Value
Clear Value
<<Default>>


Errors encountered while attempting to reload the script

Script Reload

Property Name

Script source file is missing or cannot be edited, properties cannot be added

Script type information cannot be read, properties cannot be added

Unable to check out script code from Perforce. Properties cannot be added

Unable to add the property to the script source code


Add Property

NewProperty.string..bool....float


Property Auto-Fill

%d properties auto-filled


Properties for script %s attached to %s.alias %s attached to %s (%08X).... A..€?


Papyrus Use Info Window.

<Perforce Disabled>

Are you sure you wish to revert the selected scripts? Your changes will be lost

Logs/Perforce


Unable to initialize perforce, check your logs for more
Perforce Interface
sPerforceUsername:Papyrus

sPerforceWorkspace:Papyrus

sUsername:Perforce

sWorkspace:Perforce


p4com.dll

DllRegisterServer
Failed to register perforce COM object - p4com.dll not found

Failed to register perforce COM object - register function not found

Failed to register perforce COM object - register call failed

login
login -s

Unable to initialize perforce connection - failed to obtain COM object

Link to comment
Share on other sites

  • 2 weeks later...
  • Recently Browsing   0 members

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