Difference between revisions of "User:Scrivener07/Wiki"

From the Fallout4 CreationKit Wiki
Jump to navigation Jump to search
imported>Qazaaq
m
imported>Qazaaq
 
(12 intermediate revisions by the same user not shown)
Line 1: Line 1:
== Wiki Shortcuts ==
This is my personal notepad to keep track of wiki information and TODOs for the website.
*[[Help:Welcome_to_the_Wiki|Helping the Wiki]]
See also [[Help:Welcome to the Wiki|Helping the Wiki]].
*[[Standards and Policies]]
*[[Special:RecentChanges|Recent Changes]]
*[[:Category:Inaccurate Articles|Inaccurate Articles]]
*[[:Category:Incomplete Articles|Incomplete Articles]]
*[[:Category:Pages marked for deletion|Pages Marked for Deletion]]


==== Templates ====
*Consolidate [[:Category:Entry Points]].
These are some useful templates for new page content.
*Reevaluate [[Template:Effect Item]].
*[[Template:Inaccurate Article]]
* Help Kingtobbe format his external link resource. https://pastebin.com/QatiZ4ec
*[[Template:Incomplete Article]]
* The Creation Kit's form picker (used by script properties as well as the Constructible Item screen), has a limit of 99 characters. If a record exists that could populate that menu that has 100+ characters, the CK crashes on trying to display that menu. This is an editor ID limitation. If you make a form called <code>Some_NewObject_WithARidiculouslyLongEditorID_ThatForSomeReasonSurpasses99Characters_AndCrashesTheConstructibleItemScreen</code>, accessing screens that could include that form in a drop-down will crash the CK.
*[[Template:Editor:Property]]
* Glean more notes for [[FormList]]. https://www.reddit.com/r/skyrimmods/comments/beb2sa/papyrus_formlists_are_annoyingly_inconsistent/
*[[Template:Editor:PropertyObsolete]]
*[[Template:ClearFloats]]
*[[Template:Delete]]
*[[Template:Notice]]
*[[Template:Papyrus:RequiredF4SE]]


== Wiki Ideas ==
== Armor Slots and GetWorn ==
These are my notes and ideas for changes to the website.
There is a precedence to armor slots. The slots are ordered from head-to-toe. An armor form only properly exists on the highest slot it covers. Armors will superfically flag the cover slots it covers as occupied. For example a helmet with goggles that covers the HEAD+EYE slots will have to be accessed via the HEAD slot. On the other hand, a gas mask that covers the EYE+MOUTH slots will need to be accessed via the EYE slot. If for some reason there is a mask that covers the HEAD+EYES+MOUTH then it will need to be accessed via the HEAD slot because its the highest one.


==== TODO ====
<source lang="papyrus">
This is my hot list for contributions I plan to submit. [[User:Scrivener07|Scrivener07]] ([[User talk:Scrivener07|talk]]) 2017-10-28T20:55:06 (EDT)
Scriptname WornExample extends Quest
*Add [[Use Report]] window.
 
*Add better pages on structs & more actual examples. Its still not clear to some people when structs are most useful.
Actor Player
int BipedEyes = 17 const
bool ThirdPerson = false const
 
Event OnQuestInit()
Player = Game.GetPlayer()
Actor:WornItem worn = GetWorn()
Debug.TraceSelf(self, "OnQuestInit", "Worn:"+worn)
EndEvent
 
Actor:WornItem Function GetWorn()
{Scans down the highest slot of an eye slot armor.}
int slot = 0
While (slot <= BipedEyes)
Actor:WornItem worn = Player.GetWornItem(slot, ThirdPerson)
If (ItemFilter(worn.Item))
return worn
EndIf
slot += 1
EndWhile
Debug.TraceSelf(self, "GetWorn", "No biped slot has a valid eyes armor.")
return none
EndFunction
 
bool Function ItemFilter(Form item)
Armor armo = item as Armor
return armo && HasSlotMask(armo, kSlotMask47)
EndFunction
 
bool Function HasSlotMask(Armor armo, int value) Global
return Math.LogicalAnd(armo.GetSlotMask(), value) == value
EndFunction
 
</source>
 
= [[Main Page]] =
== Help ==
*Improve the [[Help:Welcome to the Wiki]] page.
*Link to [[Vandalism]].
*The [[Creation Kit:Copyrights]] page is blanked. Ill look into this further..
Here's some links to help while you edit the wiki - keep it open in a separate tab or window for quick reference. Feel free to add any categories or articles you want to keep on hand.
* [[Help: Wiki Editing Style Guide]] & [[Help: Wiki Editing Syntax Guide]]
* [http://en.wikipedia.org/wiki/Help:Contents/Editing_Wikipedia Editing Wikipedia]
 
== [[Tutorials]] ==
* https://www.creationkit.com/fallout4/index.php?title=Bethesda_Tutorial_Conversations
=== [[:Category:Scripting Guides]] ===
=== [[Cheat Sheets]] ===
=== [[Glossary]] ===
*Maybe add a section to category pages that list out the "also referred as X". Use the "What Links Here" for redirects. For example, [[Creation Kit Toolset]].
 
== [[Game Systems]] ==
 
== [[Editor Reference]] ==
* Add [[Editor Smoke]] to "Getting Started".
*Possibly add [[Glossary]] for terms like ''Base Object''. See also Skyrim wiki @ https://www.creationkit.com/index.php?title=Glossary
*Restore the [[Condition Function]]s reference.
*Add proper redirect pages for established categories. Also continue to restore or consolidate the broken redirects like [[Default Objects]] and [[Regions]].
 
=== [[Editor Interface]] ===
*Expand the [[Editor Interface]] and related "windows".
*Document the [[Creation Kit]] [[Menu Bar]].
*Add '''Object Window Layout''' to [[Object Window]], this is the layout editor window "for" this window. [[Quest]] and other windows have these layout editors too.
=== Windows ===
*Add the [[Data Window]].
*Add [[Toolbar Window]], [[Toolbar]], [[Editor Interface#Toolbar]], (?)
*Add [[Statusbar Window]], [[Statusbar]], [[Editor Interface#Toolbar]], (?)
*Add [[Cell View Window]], [[Cell View]]
*Add [[Scene Info Window]], [[Scene Info]]
*Add [[Open Windows]]
*Add [[Preview Window]]
*Add [[Show\Hide Window]], [[Show/Hide Window]]
*Add [[Reference Batch Action Window]]
*Add [[Layers Window]]
*Add [[Material Palette Window]], [[Material Palette]]
*Add Edit -> Render Window Picking Preferences, [[Picking Preferences Window]] or [[Render Window Picking Preferences]]?
*Add [[Render Window Hotkeys]]
*Add [[WorldSpace Window]], [[WorldSpace]]
*Add [[Region Editor Window]], [[Region Editor]], [[Region]], (?)
*Add [[Properties Window]], [[Properties]]
*Add [[Reference Window]] @Render Window
*Add [[Use Report]].
 
=== [[Tooling Reference]] ===
==== [[Creation Kit Toolset]] ====
 
=== [[Game File Reference]] ===
*Add page anchors to file extensions in the [[Game File Reference]]. Add redirects to the anchors for extension in all caps. (TXT, FLA, PEX)
*Mention the [[Archive File]] naming scheme when paired with a [[Data File]]. For example, <code>MyArchive - Main.ba2</code> and <code>MyArchive - Textures.ba2</code>
*Add [[Text File]], tab-delimited format for some [[Creation Kit]] report exporting.
*Creation INI reference. Maybe add as a section to [[Creation Kit]] and a new page called [[Fallout 4]].
==== [[Data File]] ====
*Expand on [[Version Control and Multiple Contributor Collaboration ]] for the [[Creation Kit]].
 
=== [[Object Class Reference]] ===
*Research type signatures for Forms. Add cheat sheet for signatures and type icons.
*Restore the enormous editors like [[Quest]], [[Actor]], and [[Race]].
*Restore the enormous editors like [[Quest]], [[Actor]], and [[Race]].
*Restore the [[:Category:Condition_Functions|Condition Functions]].
*Better pages for [[Object]], [[Base Object]], [[Object Reference]], and [[Reference]].
*Expand papyrus pages to include both minimalistic and complete source code examples.
*Add template for where objects can be found in the [[Object Window]]. For example: <code>The [[Key]] [[Object]] is found within the [[Object Window]] under the [[Items Category]].</code>
 
==== Icons ====
==== Add Editor Icons ====
I had the idea to add the editor icons to object pages alongside the object's type code.
I had the idea to add the editor icons to object pages alongside the object's type code.
*[[File:Actor Action EditorIcon.png]] [[Actor Action]]
*[[File:Actor Action EditorIcon.png]] [[Actor Action]]
Line 35: Line 119:
*[[File:Quest EditorIcon.png]] [[Quest]]
*[[File:Quest EditorIcon.png]] [[Quest]]


==== Add Tool Pages ====
=== [[Console Command Reference]] ===
Add links and categorize the [[Bethesda Archive Extractor]] page. Might go well on the [[Archive File]] page.
=== [[Condition Function Reference]] ===


==== Remove F4SE Pages From Papyrus Category ====
== [[Scripting]] ==
See [[:Category:F4SE|F4SE Category]] talk page. [[User:Scrivener07|Scrivener07]] ([[User talk:Scrivener07|talk]]) 2018-02-20T21:17:54 (EST)
*Expand papyrus pages to include both minimalistic and complete source code examples.
*Add better pages on structs & more actual examples of when structs are most useful.
*Finish [[F4SE]] script documentation up to the current version.
*Document the papyrus assembly. The [[Script File]] may be the only mention of papyrus assembly. The user cadpnq has started to document some of the assembly instructions here https://github.com/cadpnq/papyrith/wiki/Instruction-Reference
=== Papyrus Concepts ===
=== Other Resources ===
=== External Text Editors ===
=== Reference Pages ===
==== [[Papyrus Language Reference]] ====
==== Papyrus Script Objects ====


==== Papyrus Assembly ====
= F4SE =
Document the papyrus assembly. The [[Script File]] may be the only mention of papyrus assembly. The user cadpnq has started to document some of the assembly instructions here https://github.com/cadpnq/papyrith/wiki/Instruction-Reference [[User:Scrivener07|Scrivener07]] ([[User talk:Scrivener07|talk]]) 2018-04-03T06:32:02 (EDT)
*Remove F4SE pages from the [[Papyrus]] category.
*Add templates for F4SE features. (auto add to category, icon, required version, etc..)
*[[F4SE:DummyTestPage]] Maybe prefix like this?


==== Possible F4SE UI Additions ====
This is something I have delayed doing for some time now.
<source lang="papyrus">
With the wiki tools I have access to, this would be a very tedious and time consuming task.
; Returns whether the menu is registered
I have continued to add new f4se pages to the [[Papyrus]] category for consistency.
bool Function IsMenuRegistered(string menu) native global
I would rather reorganize/move the f4se pages all at once than a mix.
See [[F4SE]] talk page.


struct MenuData
Using [https://www.mediawiki.org/wiki/Help:Subpages Subpages] might be an option if that is enabled in the wiki software.
    int menuFlags
Subpages are enabled for user & talk pages by default, but not the main namespace.
    int movieFlags
    int extendedFlags
    int depth
endStruct


bool Function RegisterCustomMenu(string menuName, string menuPath, string rootPath, MenuData mData) native global
; Return value does not indicate the menu is ready, only that it sent the message
bool Function OpenMenu(string menuName) native global
; Return value does not indicate the menu is closed, only that it sent the message
bool Function CloseMenu(string menuName) native global
</source>
<source lang="papyrus">
UI:MenuData mData = new UI:MenuData
mData.menuFlags = 0x01 + 0x08 + 0x04 ; Pause Game, Enable Menu Control, Show cursor
mData.movieFlags = 2
mData.extendedFlags = 1 ; Inherit menu color
mData.depth = 6
If UI.RegisterCustomMenu("MyCustomMenu", "Something", "root1.Menu_mc", mData)
    UI.OpenMenu("MyCustomMenu")
EndIf
</source>


<code>0x8018499</code> are the menu flags used by messagebox menu. This is a nice note for the wiki page.
===== Pages =====
{{Special:PrefixIndex/{{FULLPAGENAME}}/}}

Latest revision as of 11:14, 2 September 2019

This is my personal notepad to keep track of wiki information and TODOs for the website. See also Helping the Wiki.

Armor Slots and GetWorn[edit | edit source]

There is a precedence to armor slots. The slots are ordered from head-to-toe. An armor form only properly exists on the highest slot it covers. Armors will superfically flag the cover slots it covers as occupied. For example a helmet with goggles that covers the HEAD+EYE slots will have to be accessed via the HEAD slot. On the other hand, a gas mask that covers the EYE+MOUTH slots will need to be accessed via the EYE slot. If for some reason there is a mask that covers the HEAD+EYES+MOUTH then it will need to be accessed via the HEAD slot because its the highest one.

Scriptname WornExample extends Quest

Actor Player
int BipedEyes = 17 const
bool ThirdPerson = false const

Event OnQuestInit()
	Player = Game.GetPlayer()
	Actor:WornItem worn = GetWorn()
	Debug.TraceSelf(self, "OnQuestInit", "Worn:"+worn)
EndEvent

Actor:WornItem Function GetWorn()
	{Scans down the highest slot of an eye slot armor.}
	int slot = 0
	While (slot <= BipedEyes)
		Actor:WornItem worn = Player.GetWornItem(slot, ThirdPerson)
		If (ItemFilter(worn.Item))
			return worn
		EndIf
		slot += 1
	EndWhile
	Debug.TraceSelf(self, "GetWorn", "No biped slot has a valid eyes armor.")
	return none
EndFunction

bool Function ItemFilter(Form item)
	Armor armo = item as Armor
	return armo && HasSlotMask(armo, kSlotMask47)
EndFunction

bool Function HasSlotMask(Armor armo, int value) Global
	return Math.LogicalAnd(armo.GetSlotMask(), value) == value
EndFunction

Main Page[edit | edit source]

Help[edit | edit source]

Here's some links to help while you edit the wiki - keep it open in a separate tab or window for quick reference. Feel free to add any categories or articles you want to keep on hand.

Tutorials[edit | edit source]

Category:Scripting Guides[edit | edit source]

Cheat Sheets[edit | edit source]

Glossary[edit | edit source]

  • Maybe add a section to category pages that list out the "also referred as X". Use the "What Links Here" for redirects. For example, Creation Kit Toolset.

Game Systems[edit | edit source]

Editor Reference[edit | edit source]

Editor Interface[edit | edit source]

Windows[edit | edit source]

Tooling Reference[edit | edit source]

Creation Kit Toolset[edit | edit source]

Game File Reference[edit | edit source]

  • Add page anchors to file extensions in the Game File Reference. Add redirects to the anchors for extension in all caps. (TXT, FLA, PEX)
  • Mention the Archive File naming scheme when paired with a Data File. For example, MyArchive - Main.ba2 and MyArchive - Textures.ba2
  • Add Text File, tab-delimited format for some Creation Kit report exporting.
  • Creation INI reference. Maybe add as a section to Creation Kit and a new page called Fallout 4.

Data File[edit | edit source]

Object Class Reference[edit | edit source]

Icons[edit | edit source]

I had the idea to add the editor icons to object pages alongside the object's type code.

Console Command Reference[edit | edit source]

Condition Function Reference[edit | edit source]

Scripting[edit | edit source]

  • Expand papyrus pages to include both minimalistic and complete source code examples.
  • Add better pages on structs & more actual examples of when structs are most useful.
  • Finish F4SE script documentation up to the current version.
  • Document the papyrus assembly. The Script File may be the only mention of papyrus assembly. The user cadpnq has started to document some of the assembly instructions here https://github.com/cadpnq/papyrith/wiki/Instruction-Reference

Papyrus Concepts[edit | edit source]

Other Resources[edit | edit source]

External Text Editors[edit | edit source]

Reference Pages[edit | edit source]

Papyrus Language Reference[edit | edit source]

Papyrus Script Objects[edit | edit source]

F4SE[edit | edit source]

  • Remove F4SE pages from the Papyrus category.
  • Add templates for F4SE features. (auto add to category, icon, required version, etc..)
  • F4SE:DummyTestPage Maybe prefix like this?

This is something I have delayed doing for some time now. With the wiki tools I have access to, this would be a very tedious and time consuming task. I have continued to add new f4se pages to the Papyrus category for consistency. I would rather reorganize/move the f4se pages all at once than a mix. See F4SE talk page.

Using Subpages might be an option if that is enabled in the wiki software. Subpages are enabled for user & talk pages by default, but not the main namespace.


Pages[edit | edit source]