1shoedpunk Posted November 1, 2013 Share Posted November 1, 2013 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 = 1iMinMemoryPageSize = 128iMaxMemoryPageSize = 512iMaxAllocatedMemoryBytes = 76800 ;75kbDownload Perforce from here: http://www.perforce....erforce/20-UserInstall a server and a client. This might work similar to Source Control or setting itup for the UDK if I'm correctError messagesPerforce workspace does not contain a script folder, Papyrus scripts will not bechecked 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 characterstrimmedScript fragment prefix has invalid characters. Bad characters replacedScript SettingsNew Starting Topic ID.Topic.New Branch IDThis 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 PerforceUpdated dialogue view %s (%08X).%s%temp_view.xml....</Diagram>TableOutPatternTableInPatternbPerforceEnabled:Flowchart//TESVData/current/Source/DialogueViews/sPerforceFolder:FlowchartbDialogueViewRouteArrows:FlowchartiDialogueViewNodeVicinityCost:FlowchartiDialogueViewArrowStyle:FlowchartiDialogueViewArrowSegmentCount:FlowchartUnable to update scripts from PerforceFile list was trimmedThe following scripts need to be externally resolvedNewer 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:PapyrusScripts/pexData/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)ScriptnameHiddenConditionalextends (the xml file referenced earlier)Unable create the new script fileNew ScriptNewScriptInvalid doc stringDoc string may not contain any { or } charactersInvalid extends script name or name too longThe name must start with an underscore or letter and be followed by underscores, letters, or numbersThe extends script does not exist, please pick one that doesCannot have an empty nameInvalid script name or name too longThe name must start with an underscore or letter.and be followed by underscores, letters, or numbers.That script already exists, please choose a different nameYou must enter a script name.Rename ScriptScript already exists, please choose another nameScript 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 ActiveMagicEffectScript 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>.../..ScriptFile.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.AdvancedResult ScriptPapyrus Fragment Unable to create or write temporary file for compilationUnable to read in script source code Papyrus Script Unable to launch external editor for scriptScript inherited from parentScript inherited and deleted locallyScript inherited and edited locallyScript added locallyScript added and edited locally.Status: Script "%s" had errors while loading, it will not be added to the objectThe new script is a conditional script, but another conditional script is already attached. This may result in odd behavior. Continue? Remove Script Undelete ScriptUndeleteAre you sure you wish to remove ALL scripts? Attached ScriptsUnable to check out script or add it to perforce.Unable to check in script to perforceAre you sure you wish to revert the selected script? Your changes will be lost. OnScriptDblClk:Scripts.PapyrusManager Window %d...Papyrus Manager Window %d Filter....Papyrus Manager WindowColumn OrderPapyrus Manager WindowColumn SizeAny of the below will result in a "Unable to add script to perforce" error message.<bad list ID><not compiled><no docstring>Has SourceCompiledPapyrus Properties WindowPapyrus 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 nameThe 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 typeThe 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..= %sProperty unmodifiedProperty edited locallyProperty inherited and edited locallyProperty inherited from parentProperty inherited and cleared locallyArray ElementProperty type: <nothing selected>Property type: %sEdit ValueClear Value<<Default>>Errors encountered while attempting to reload the scriptScript ReloadProperty NameScript source file is missing or cannot be edited, properties cannot be addedScript type information cannot be read, properties cannot be addedUnable to check out script code from Perforce. Properties cannot be addedUnable to add the property to the script source codeAdd PropertyNewProperty.string..bool....floatProperty Auto-Fill%d properties auto-filledProperties 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 lostLogs/PerforceUnable to initialize perforce, check your logs for morePerforce InterfacesPerforceUsername:PapyrussPerforceWorkspace:PapyrussUsername:PerforcesWorkspace:Perforcep4com.dllDllRegisterServerFailed to register perforce COM object - p4com.dll not foundFailed to register perforce COM object - register function not foundFailed to register perforce COM object - register call failedloginlogin -sUnable to initialize perforce connection - failed to obtain COM object Link to comment Share on other sites More sharing options...
1shoedpunk Posted November 1, 2013 Author Share Posted November 1, 2013 By the way, this is our ongoing discussion thread where I'm posting much of my progress. If there are any major breakthroughs I will definitely post here too. Link to comment Share on other sites More sharing options...
1shoedpunk Posted November 10, 2013 Author Share Posted November 10, 2013 And we've cracked it: http://forums.bethsoft.com/topic/1477155-perforce-integration-in-the-creation-kit/ Still working out the functionality, but a comprehensive tutorial is on its way. Link to comment Share on other sites More sharing options...
Recommended Posts