]SaveNameDirty Loaded QuestionsEpochTimebDate7/7/2022 8:18:25 AMVersionNumberv13.1.1GameModeDirty Loaded QuestionsGameTypeGameGameComplexityLow ComplexityPlayingTime01PlayerCounts01 TagsZ0 Mature Games1 Card Games2 Party Games3Cards4EnglishGravity?PlayArea?Table Table_CustomTableURLfhttp://cloud-3.steamusercontent.com/ugc/1807634732674631758/38CFE15C421828218018A54E16179AB509C04390/Sky Sky_MuseumNoteTabStatesN0mtitleRulesbodycolorGreyvisibleColor&r?g?b?id1ntitleWhitebodycolorWhitevisibleColor&r?g?b?id2ntitleBrownbodycolorBrownvisibleColor&rZ?gh?b= ?id3jtitleRedbodycolorRedvisibleColor&r Zd?g?b@b?id4ptitleOrangebodycolorOrangevisibleColor&r@?g ?b`?id5ptitleYellowbodycolorYellowvisibleColor&r?gj?b?id6ntitleGreenbodycolorGreenvisibleColor&rt?gn?b ?id7ltitleBluebodycolorBluevisibleColor&r?5?g?b?id8ltitleTealbodycolorTealvisibleColor&r`?g?5?b@l?id9ptitlePurplebodycolorPurplevisibleColor&r@b?g?b?id 10ltitlePinkbodycolorPinkvisibleColor&rQ?g?b?id 11ntitleBlackbodycolorBlackvisibleColor&r?g?b?id GridTypeLinesColor&rgbOpacity?ThickLinesSnappingOffsetBothSnappingxSize@ySize@PosOffset&xy?zLightingjLightIntensity G?LightColor&r?go_?b|?AmbientIntensity?AmbientTypeAmbientSkyColor&r?g?b?AmbientEquatorColor&r?g?b?AmbientGroundColor&r?g?b?ReflectionIntensity?LutIndexLutContribution?Hands*EnableDisableUnusedHidingComponentTagslabelsTurnspEnableTypeTurnOrderReverseSkipEmptyDisableInteractionsPassTurnsTurnColorDecalPalletLuaScriptA--[[ Lua code. See documentation: https://api.tabletopsimulator.com/ --]] --[[ The onLoad event is called after the game save finishes loading. --]] function onLoad() --[[ print('onLoad!') --]] end --[[ The onUpdate event is called once per frame. --]] function onUpdate() --[[ print('onUpdate loop!') --]] endLuaScriptStateXmlUIRObjectStatescQ0(GUIDd301c6Name HandTriggerTransformposX@7@posYX @posZ 9A@rotXrotYyf@rotZscaleX].@scaleYJ'@scaleZ f@NicknameDescriptionGMNotesColorDiffuse1r ?5?g?b?aLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsFogColorBlueLuaScriptLuaScriptStateXmlUI1)GUIDc980a0Name HandTriggerTransformposXposYX @posZ`k6ArotXrotYrotZscaleX`^.@scaleYJ'@scaleZf@NicknameDescriptionGMNotesColorDiffuse1rZ?gh?b`= ?aLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsFogColorBrownLuaScriptLuaScriptStateXmlUI2)GUID581dadName HandTriggerTransformposX@7posYX @posZ`>7A@rotXrotYf@rotZscaleX \.@scaleYJ'@scaleZf@NicknameDescriptionGMNotesColorDiffuse1rt?gn?b?aLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsFogColorGreenLuaScriptLuaScriptStateXmlUI3*GUID997c53Name HandTriggerTransformposXnIposYX @posZ v'rotXrotYV@rotZscaleXVc.@scaleYJ'@scaleZj@NicknameDescriptionGMNotesColorDiffuse1r ?g?b?aLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsFogColorOrangeLuaScriptLuaScriptStateXmlUI4(GUIDe76760Name HandTriggerTransformposXAI@posYX @posZ v'rotXrotYp@rotZscaleX@Tc.@scaleYJ'@scaleZj@NicknameDescriptionGMNotesColorDiffuse1rQ?g`?b?aLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsFogColorPinkLuaScriptLuaScriptStateXmlUI5*GUID23eb41Name HandTriggerTransformposXI@posYX @posZ v'@rotXrotYp@rotZscaleXTc.@scaleYJ'@scaleZj@NicknameDescriptionGMNotesColorDiffuse1r@b?g?b?aLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsFogColorPurpleLuaScriptLuaScriptStateXmlUI6'GUID082d3aName HandTriggerTransformposX@7posYX @posZ`k6ArotXrotYrotZscaleX^.@scaleYJ'@scaleZf@NicknameDescriptionGMNotesColorDiffuse1r Zd?g ?ba?aLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsFogColorRedLuaScriptLuaScriptStateXmlUI7(GUID8bc07fName HandTriggerTransformposXposYX @posZ 9A@rotXrotYyf@rotZscaleX`].@scaleYJ'@scaleZ f@NicknameDescriptionGMNotesColorDiffuse1r?g?5?b l?aLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsFogColorTealLuaScriptLuaScriptStateXmlUI8)GUID809036Name HandTriggerTransformposX@7@posYX @posZ ArotXrotYrotZscaleX \.@scaleYJ'@scaleZ @NicknameDescriptionGMNotesColorDiffuse1r?g?b?aLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsFogColorWhiteLuaScriptLuaScriptStateXmlUI9*GUID59654eName HandTriggerTransformposXnIposYX @posZ v'@rotXrotYV@rotZscaleXVc.@scaleYJ'@scaleZj@NicknameDescriptionGMNotesColorDiffuse1r?gj?b@?aLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsFogColorYellowLuaScriptLuaScriptStateXmlUI10bGUIDe71555NameFogOfWarTriggerTransformposX6@posY @posZ6rotXrotYU}v@rotZscaleX@#@scaleY`ff@scaleZwt@NicknameDescriptionGMNotesColorDiffuse1r?g?b?a?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsFogColorWhiteFogHidePointersFogReverseHidingFogSeethroughLuaScriptLuaScriptStateXmlUI11bGUID673488NameFogOfWarTriggerTransformposXն?posY @posZ $7rotXrotY@GerotZscaleXa#@scaleY`ff@scaleZ@NicknameDescriptionGMNotesColorDiffuse1rZ?gh?b`= ?a?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsFogColorBrownFogHidePointersFogReverseHidingFogSeethroughLuaScriptLuaScriptStateXmlUI12`GUID0237c7NameFogOfWarTriggerTransformposXs7posY @posZ`$6rotXrotY`S>rotZscaleX ,!@scaleY`ff@scaleZ1@NicknameDescriptionGMNotesColorDiffuse1r Zd?g ?ba?a?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsFogColorRedFogHidePointersFogReverseHidingFogSeethroughLuaScriptLuaScriptStateXmlUI13cGUID4f79c8NameFogOfWarTriggerTransformposX@gDposY @posZ`Z(rotXrotY@VuV@rotZscaleX @scaleY`ff@scaleZР@NicknameDescriptionGMNotesColorDiffuse1r ?g?b?a?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsFogColorOrangeFogHidePointersFogReverseHidingFogSeethroughLuaScriptLuaScriptStateXmlUI14cGUID063fa5NameFogOfWarTriggerTransformposXSDposY @posZ3'@rotXrotYV@rotZscaleX"@scaleY`ff@scaleZ e@NicknameDescriptionGMNotesColorDiffuse1r?gj?b@?a?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsFogColorYellowFogHidePointersFogReverseHidingFogSeethroughLuaScriptLuaScriptStateXmlUI15bGUID678848NameFogOfWarTriggerTransformposXU7posY @posZ6@rotXrotYf@rotZscaleX# @scaleY`ff@scaleZv@NicknameDescriptionGMNotesColorDiffuse1rt?gn?b?a?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsFogColorGreenFogHidePointersFogReverseHidingFogSeethroughLuaScriptLuaScriptStateXmlUI16aGUID2f7c11NameFogOfWarTriggerTransformposXпposY @posZ@6@rotXrotY~f@rotZscaleX!@scaleY`ff@scaleZ`@NicknameDescriptionGMNotesColorDiffuse1r?g?5?b l?a?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsFogColorTealFogHidePointersFogReverseHidingFogSeethroughLuaScriptLuaScriptStateXmlUI17cGUIDc84fd5NameFogOfWarTriggerTransformposXnD@posY @posZ r'@rotXrotYp@rotZscaleXӓ!@scaleY`ff@scaleZE@NicknameDescriptionGMNotesColorDiffuse1r@b?g?b?a?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsFogColorPurpleFogHidePointersFogReverseHidingFogSeethroughLuaScriptLuaScriptStateXmlUI18aGUIDda54afNameFogOfWarTriggerTransformposXbD@posY @posZ(rotXrotYp@rotZscaleXI"@scaleY`ff@scaleZhq@NicknameDescriptionGMNotesColorDiffuse1rQ?g`?b?a?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsFogColorPinkFogHidePointersFogReverseHidingFogSeethroughLuaScriptLuaScriptStateXmlUI19aGUID5c9159NameFogOfWarTriggerTransformposX17@posY @posZ౬6@rotXrotYyf@rotZscaleX`8"@scaleY`ff@scaleZt@NicknameDescriptionGMNotesColorDiffuse1r ?5?g?b?a?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsFogColorBlueFogHidePointersFogReverseHidingFogSeethroughLuaScriptLuaScriptStateXmlUI20GUID0c43e7NameBagTransformposXS?posYğ?posZ`A?rotX刴>rotYD2rotZ>scaleX @scaleY @scaleZ @NicknameDescriptionGMNotesColorDiffuse&r?gu?bLayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsMaterialIndexMeshIndexNumberBagOrderLuaScriptpfunction onObjectLeaveContainer(c, x) if c == self then x.setRotation(Vector(180,0,0)) end end LuaScriptStateXmlUI21GUIDb60126NameCounterTransformposX`"posY?posZ?,7rotX7grotY m?rotZ}>scaleXff@scaleYff@scaleZff@NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCountervalueLuaScriptLuaScriptStateXmlUI22GUID4ba13fNameCounterTransformposX3 +@posY?posZ 677rotXgrotY`Sv?rotZrotYm?rotZ=9^>scaleXff@scaleYff@scaleZff@NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCountervalueLuaScriptLuaScriptStateXmlUI24GUID816814NameCounterTransformposX ADposY?posZ OrotX 4>rotYV@rotZ`_scaleXff@scaleYff@scaleZff@NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCountervalueLuaScriptLuaScriptStateXmlUI25GUID296837NameCounterTransformposXwDposY?posZ.5@rotX ]y>rotYV@rotZz{scaleXff@scaleYff@scaleZff@NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCountervalueLuaScriptLuaScriptStateXmlUI26GUIDa3e8b2NameCounterTransformposX<.posY?posZ6@rotXnrotY`Ef@rotZFwscaleXff@scaleYff@scaleZff@NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCountervalueLuaScriptLuaScriptStateXmlUI27GUID5f6b6eNameCounterTransformposX? @posY?posZ |6@rotX%rotY \f@rotZiscaleXff@scaleYff@scaleZff@NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCountervalueLuaScriptLuaScriptStateXmlUI28GUID76ab3fNameCounterTransformposX@4@@posY@?posZ<6@rotX NrotY\f@rotZAe>scaleXff@scaleYff@scaleZff@NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCountervalueLuaScriptLuaScriptStateXmlUI29GUID4a7adcNameCounterTransformposXkD@posY?posZ @rotX^Բ>rotY"p@rotZPscaleXff@scaleYff@scaleZff@NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCountervalueLuaScriptLuaScriptStateXmlUI30GUIDb97647NameCounterTransformposX@D@posY ?posZ04rotX`-6x>rotY0p@rotZ)yscaleXff@scaleYff@scaleZff@NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCountervalueLuaScriptLuaScriptStateXmlUI31GUIDda9ab7Name DeckCustomTransformposX +5posY w?posZ XPտrotX 2>rotY6f@rotZf@scaleX -?scaleY?scaleZ -?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsSidewaysCardDeckIDsK0f1g2i3h4j5k6d7m8l9eCustomDeck61.FaceURLfhttp://cloud-3.steamusercontent.com/ugc/1850431941403544230/DCDA3941C5D6E8460496C735D92D7D85AADB8F83/BackURLfhttp://cloud-3.steamusercontent.com/ugc/1850431941403552420/4634364ADD5BFFA2C06191295BA9761E45FDFDDE/NumWidth NumHeightBackIsHiddenUniqueBackTypeLuaScriptLuaScriptStateXmlUIContainedObjects0"GUID130d17NameCardTransformposX@posY?posZi!rotXPv3rotYf@rotZf@scaleX?scaleY?scaleZ?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDfSidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects1"GUID7c432bNameCardTransformposX@posY?posZi!rotXPv3rotYf@rotZf@scaleX?scaleY?scaleZ?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDgSidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects2"GUID7631b2NameCardTransformposX@posY?posZi!rotXPv3rotYf@rotZf@scaleX?scaleY?scaleZ?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDiSidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects3"GUID9ab224NameCardTransformposX@posY?posZi!rotXPv3rotYf@rotZf@scaleX?scaleY?scaleZ?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDhSidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects4"GUID5d0979NameCardTransformposX@posY?posZi!rotXPv3rotYf@rotZf@scaleX?scaleY?scaleZ?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDjSidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects5"GUID929013NameCardTransformposX@posY?posZi!rotXPv3rotYf@rotZf@scaleX?scaleY?scaleZ?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDkSidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects6`GUIDe22224NameCardTransformposX%@posY?posZe?rotX^ &?rotYf@rotZf@scaleX@scaleY?scaleZ@NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCardIDdSidewaysCardCustomDeck61.FaceURLfhttp://cloud-3.steamusercontent.com/ugc/1850431941403544230/DCDA3941C5D6E8460496C735D92D7D85AADB8F83/BackURLfhttp://cloud-3.steamusercontent.com/ugc/1850431941403552420/4634364ADD5BFFA2C06191295BA9761E45FDFDDE/NumWidth NumHeightBackIsHiddenUniqueBackTypeLuaScriptLuaScriptStateXmlUI7"GUID31aafeNameCardTransformposX@posY?posZi!rotXPv3rotYf@rotZf@scaleX?scaleY?scaleZ?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDmSidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects8"GUID2b2b8eNameCardTransformposX@posY?posZi!rotXPv3rotYf@rotZf@scaleX?scaleY?scaleZ?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDlSidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects9`GUIDe96beeNameCardTransformposX&@posY@"?posZϿrotXC^?rotY`Ef@rotZf@scaleX@scaleY?scaleZ@NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCardIDeSidewaysCardCustomDeck61.FaceURLfhttp://cloud-3.steamusercontent.com/ugc/1850431941403544230/DCDA3941C5D6E8460496C735D92D7D85AADB8F83/BackURLfhttp://cloud-3.steamusercontent.com/ugc/1850431941403552420/4634364ADD5BFFA2C06191295BA9761E45FDFDDE/NumWidth NumHeightBackIsHiddenUniqueBackTypeLuaScriptLuaScriptStateXmlUI32GUID60a0dfName NotecardTransformposXTposY`z?posZ`7V7rotX uarotYFsrotZ%__>scaleX?scaleY?scaleZ?NicknameLoaded QuestionsDescription GMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsLuaScript%-- Better Notecards -- by: Bada -- Updated: 2017-09-15 NOTECARD = {} -- Load and Save data function onLoad(saved_data) self.setDescription(" ") if saved_data ~= "" then NOTECARD = JSON.decode(saved_data) if NOTECARD.description == nil then defaults() end else defaults() end createFields() loadData() end function updateSave() saved_data = JSON.encode(NOTECARD) self.script_state = saved_data end function onSave() self.setDescription(" ") return JSON.encode(NOTECARD) end function defaults() NOTECARD = { description = { "" }, fontsize = { 250 }, pagenumber = 1, maxpagenumber = 1, locked = false, input_description = 0, input_pagenumber = 1, button_lock = 0, button_incfont = 1, button_decfont = 2, button_pageup = 3, button_pagedown = 4 } end -- Populate fields function createFields() self.createInput({input_function = "inputDescription", function_owner = self, label = "Put your number here!\n\nPut your answer here!", position = {0.032, 2.5, -0.045}, rotation = {0, 180, 0}, scale = {0.1, 0.1,0.1}, width = 4500, height = 3650, font_size = 250, tooltip = "Description", alignment = 2}) self.createInput({input_function = "inputPageNumber", function_owner = self, label = "Page Number", position = {-0.468, 2.5, -0.046}, rotation = {0, 270, 0}, scale = {0.1, 0.1, 0.1}, width = 2720, height = 310, font_size = 287, tooltip = "Page Number", alignment = 3, value = "Page Number"}) local lock_label = "Unlocked" if NOTECARD.locked then lock_label = "Locked" end self.createButton({click_function = "clickLockUnlock", function_owner = self, label = lock_label, position = {0.368, 2.5, -0.461}, rotation = {0, 180, 0}, scale = {0.1, 0.1, 0.1}, width = 1300, height = 390, font_size = 240, tooltip = "Lock / Unlock"}) self.createButton({click_function = "clickIncreaseFont", function_owner = self, label = "+", position = {-0.24, 2.5, -0.461}, rotation = {0, 180, 0}, scale = {0.1, 0.1, 0.1}, width = 400, height = 390, font_size = 400, tooltip = "Increase Font Size"}) self.createButton({click_function = "clickDecreaseFont", function_owner = self, label = "-", position = {-0.155, 2.5, -0.461}, rotation = {0, 180, 0}, scale = {0.1, 0.1, 0.1}, width = 400, height = 390, font_size = 400, tooltip = "Decrease Font Size"}) self.createButton({click_function = "clickPageUp", function_owner = self, label = "▲", position = {-0.468, 2.5, 0.286}, rotation = {0, 180, 0}, scale = {0.1, 0.1, 0.1}, width = 340, height = 500, font_size = 300, tooltip = "Previous Page"}) self.createButton({click_function = "clickPageDown", function_owner = self, label = "▼", position = {-0.468, 2.5, -0.378}, rotation = {0, 180, 0}, scale = {0.1, 0.1, 0.1}, width = 340, height = 500, font_size = 300, tooltip = "Next Page"}) end function loadData() local pageNum = NOTECARD.pagenumber if NOTECARD.description[pageNum] ~= nil then modifyInput(NOTECARD.input_description, NOTECARD.description[pageNum]) modifyInput(NOTECARD.input_description, NOTECARD.fontsize[pageNum], "font_size") else addPage() loadData(pageNum) end updatePage() end -- Helpers function modifyInput(i, v, n) if n then self.editInput({index = i, [n] = v}) else self.editInput({index = i, value = v}) end end function modifyButton(i, v, n) if n then self.editButton({index = i, [n] = v}) else self.editButton({index = i, label = v}) end end -- Page Functions function addPage() NOTECARD.maxpagenumber = NOTECARD.maxpagenumber + 1 NOTECARD.description[NOTECARD.maxpagenumber] = "" NOTECARD.fontsize[NOTECARD.maxpagenumber] = 250 updateSave() end function removePage() NOTECARD.description[NOTECARD.maxpagenumber] = nil NOTECARD.fontsize[NOTECARD.maxpagenumber] = nil NOTECARD.maxpagenumber = NOTECARD.maxpagenumber - 1 updateSave() end function getPageNum() return "" .. NOTECARD.pagenumber .. " / " .. NOTECARD.maxpagenumber .. "" end function updatePage() modifyInput(NOTECARD.input_pagenumber, getPageNum()) end -- Click events function clickLockUnlock(btn, colw) NOTECARD.locked = not NOTECARD.locked if NOTECARD.locked then modifyButton(NOTECARD.button_lock, "Locked") else modifyButton(NOTECARD.button_lock, "Unlocked") end end function clickIncreaseFont(btn, col) if NOTECARD.locked then alertLocked(col) return end NOTECARD.fontsize[NOTECARD.pagenumber] = NOTECARD.fontsize[NOTECARD.pagenumber] + 10 updateSave() loadData() end function clickDecreaseFont(btn, col) if NOTECARD.locked then alertLocked(col) return end NOTECARD.fontsize[NOTECARD.pagenumber] = NOTECARD.fontsize[NOTECARD.pagenumber] - 10 updateSave() loadData() end function clickPageUp(btn, col) if NOTECARD.description[NOTECARD.maxpagenumber] == "" and #NOTECARD.description > 1 then removePage() end if NOTECARD.pagenumber > 1 then NOTECARD.pagenumber = NOTECARD.pagenumber - 1 loadData() end end function clickPageDown(btn, col) if NOTECARD.pagenumber == NOTECARD.maxpagenumber then addPage() end NOTECARD.pagenumber = NOTECARD.pagenumber + 1 loadData() end -- Input events function inputDescription(btn, col, val, sel) if NOTECARD.locked then alertLocked(col) return NOTECARD.description[NOTECARD.pagenumber] end NOTECARD.description[NOTECARD.pagenumber] = val updateSave() end function inputPageNumber(btn, col, val, sel) return getPageNum() end -- Misc function alertLocked(col) broadcastToColor("Unable to edit. Notecard is locked.", col, {1,0,0}) endLuaScriptState{"button_decfont":2,"button_incfont":1,"button_lock":0,"button_pagedown":4,"button_pageup":3,"description":[""],"fontsize":[450],"input_description":0,"input_pagenumber":1,"locked":false,"maxpagenumber":1,"pagenumber":1}XmlUI33GUIDb6f0afName NotecardTransformposX7posY`z?posZL7rotXrNrotY srotZ qR>scaleX?scaleY?scaleZ?NicknameLoaded QuestionsDescription GMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsLuaScript%-- Better Notecards -- by: Bada -- Updated: 2017-09-15 NOTECARD = {} -- Load and Save data function onLoad(saved_data) self.setDescription(" ") if saved_data ~= "" then NOTECARD = JSON.decode(saved_data) if NOTECARD.description == nil then defaults() end else defaults() end createFields() loadData() end function updateSave() saved_data = JSON.encode(NOTECARD) self.script_state = saved_data end function onSave() self.setDescription(" ") return JSON.encode(NOTECARD) end function defaults() NOTECARD = { description = { "" }, fontsize = { 250 }, pagenumber = 1, maxpagenumber = 1, locked = false, input_description = 0, input_pagenumber = 1, button_lock = 0, button_incfont = 1, button_decfont = 2, button_pageup = 3, button_pagedown = 4 } end -- Populate fields function createFields() self.createInput({input_function = "inputDescription", function_owner = self, label = "Put your number here!\n\nPut your answer here!", position = {0.032, 2.5, -0.045}, rotation = {0, 180, 0}, scale = {0.1, 0.1,0.1}, width = 4500, height = 3650, font_size = 250, tooltip = "Description", alignment = 2}) self.createInput({input_function = "inputPageNumber", function_owner = self, label = "Page Number", position = {-0.468, 2.5, -0.046}, rotation = {0, 270, 0}, scale = {0.1, 0.1, 0.1}, width = 2720, height = 310, font_size = 287, tooltip = "Page Number", alignment = 3, value = "Page Number"}) local lock_label = "Unlocked" if NOTECARD.locked then lock_label = "Locked" end self.createButton({click_function = "clickLockUnlock", function_owner = self, label = lock_label, position = {0.368, 2.5, -0.461}, rotation = {0, 180, 0}, scale = {0.1, 0.1, 0.1}, width = 1300, height = 390, font_size = 240, tooltip = "Lock / Unlock"}) self.createButton({click_function = "clickIncreaseFont", function_owner = self, label = "+", position = {-0.24, 2.5, -0.461}, rotation = {0, 180, 0}, scale = {0.1, 0.1, 0.1}, width = 400, height = 390, font_size = 400, tooltip = "Increase Font Size"}) self.createButton({click_function = "clickDecreaseFont", function_owner = self, label = "-", position = {-0.155, 2.5, -0.461}, rotation = {0, 180, 0}, scale = {0.1, 0.1, 0.1}, width = 400, height = 390, font_size = 400, tooltip = "Decrease Font Size"}) self.createButton({click_function = "clickPageUp", function_owner = self, label = "▲", position = {-0.468, 2.5, 0.286}, rotation = {0, 180, 0}, scale = {0.1, 0.1, 0.1}, width = 340, height = 500, font_size = 300, tooltip = "Previous Page"}) self.createButton({click_function = "clickPageDown", function_owner = self, label = "▼", position = {-0.468, 2.5, -0.378}, rotation = {0, 180, 0}, scale = {0.1, 0.1, 0.1}, width = 340, height = 500, font_size = 300, tooltip = "Next Page"}) end function loadData() local pageNum = NOTECARD.pagenumber if NOTECARD.description[pageNum] ~= nil then modifyInput(NOTECARD.input_description, NOTECARD.description[pageNum]) modifyInput(NOTECARD.input_description, NOTECARD.fontsize[pageNum], "font_size") else addPage() loadData(pageNum) end updatePage() end -- Helpers function modifyInput(i, v, n) if n then self.editInput({index = i, [n] = v}) else self.editInput({index = i, value = v}) end end function modifyButton(i, v, n) if n then self.editButton({index = i, [n] = v}) else self.editButton({index = i, label = v}) end end -- Page Functions function addPage() NOTECARD.maxpagenumber = NOTECARD.maxpagenumber + 1 NOTECARD.description[NOTECARD.maxpagenumber] = "" NOTECARD.fontsize[NOTECARD.maxpagenumber] = 250 updateSave() end function removePage() NOTECARD.description[NOTECARD.maxpagenumber] = nil NOTECARD.fontsize[NOTECARD.maxpagenumber] = nil NOTECARD.maxpagenumber = NOTECARD.maxpagenumber - 1 updateSave() end function getPageNum() return "" .. NOTECARD.pagenumber .. " / " .. NOTECARD.maxpagenumber .. "" end function updatePage() modifyInput(NOTECARD.input_pagenumber, getPageNum()) end -- Click events function clickLockUnlock(btn, colw) NOTECARD.locked = not NOTECARD.locked if NOTECARD.locked then modifyButton(NOTECARD.button_lock, "Locked") else modifyButton(NOTECARD.button_lock, "Unlocked") end end function clickIncreaseFont(btn, col) if NOTECARD.locked then alertLocked(col) return end NOTECARD.fontsize[NOTECARD.pagenumber] = NOTECARD.fontsize[NOTECARD.pagenumber] + 10 updateSave() loadData() end function clickDecreaseFont(btn, col) if NOTECARD.locked then alertLocked(col) return end NOTECARD.fontsize[NOTECARD.pagenumber] = NOTECARD.fontsize[NOTECARD.pagenumber] - 10 updateSave() loadData() end function clickPageUp(btn, col) if NOTECARD.description[NOTECARD.maxpagenumber] == "" and #NOTECARD.description > 1 then removePage() end if NOTECARD.pagenumber > 1 then NOTECARD.pagenumber = NOTECARD.pagenumber - 1 loadData() end end function clickPageDown(btn, col) if NOTECARD.pagenumber == NOTECARD.maxpagenumber then addPage() end NOTECARD.pagenumber = NOTECARD.pagenumber + 1 loadData() end -- Input events function inputDescription(btn, col, val, sel) if NOTECARD.locked then alertLocked(col) return NOTECARD.description[NOTECARD.pagenumber] end NOTECARD.description[NOTECARD.pagenumber] = val updateSave() end function inputPageNumber(btn, col, val, sel) return getPageNum() end -- Misc function alertLocked(col) broadcastToColor("Unable to edit. Notecard is locked.", col, {1,0,0}) endLuaScriptState{"button_decfont":2,"button_incfont":1,"button_lock":0,"button_pagedown":4,"button_pageup":3,"description":[""],"fontsize":[450],"input_description":0,"input_pagenumber":1,"locked":false,"maxpagenumber":1,"pagenumber":1}XmlUI34GUIDa07f5bName NotecardTransformposXPDposY`z?posZ(rotX/hrotYHV@rotZo>scaleX?scaleY?scaleZ?NicknameLoaded QuestionsDescription GMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsLuaScript%-- Better Notecards -- by: Bada -- Updated: 2017-09-15 NOTECARD = {} -- Load and Save data function onLoad(saved_data) self.setDescription(" ") if saved_data ~= "" then NOTECARD = JSON.decode(saved_data) if NOTECARD.description == nil then defaults() end else defaults() end createFields() loadData() end function updateSave() saved_data = JSON.encode(NOTECARD) self.script_state = saved_data end function onSave() self.setDescription(" ") return JSON.encode(NOTECARD) end function defaults() NOTECARD = { description = { "" }, fontsize = { 250 }, pagenumber = 1, maxpagenumber = 1, locked = false, input_description = 0, input_pagenumber = 1, button_lock = 0, button_incfont = 1, button_decfont = 2, button_pageup = 3, button_pagedown = 4 } end -- Populate fields function createFields() self.createInput({input_function = "inputDescription", function_owner = self, label = "Put your number here!\n\nPut your answer here!", position = {0.032, 2.5, -0.045}, rotation = {0, 180, 0}, scale = {0.1, 0.1,0.1}, width = 4500, height = 3650, font_size = 250, tooltip = "Description", alignment = 2}) self.createInput({input_function = "inputPageNumber", function_owner = self, label = "Page Number", position = {-0.468, 2.5, -0.046}, rotation = {0, 270, 0}, scale = {0.1, 0.1, 0.1}, width = 2720, height = 310, font_size = 287, tooltip = "Page Number", alignment = 3, value = "Page Number"}) local lock_label = "Unlocked" if NOTECARD.locked then lock_label = "Locked" end self.createButton({click_function = "clickLockUnlock", function_owner = self, label = lock_label, position = {0.368, 2.5, -0.461}, rotation = {0, 180, 0}, scale = {0.1, 0.1, 0.1}, width = 1300, height = 390, font_size = 240, tooltip = "Lock / Unlock"}) self.createButton({click_function = "clickIncreaseFont", function_owner = self, label = "+", position = {-0.24, 2.5, -0.461}, rotation = {0, 180, 0}, scale = {0.1, 0.1, 0.1}, width = 400, height = 390, font_size = 400, tooltip = "Increase Font Size"}) self.createButton({click_function = "clickDecreaseFont", function_owner = self, label = "-", position = {-0.155, 2.5, -0.461}, rotation = {0, 180, 0}, scale = {0.1, 0.1, 0.1}, width = 400, height = 390, font_size = 400, tooltip = "Decrease Font Size"}) self.createButton({click_function = "clickPageUp", function_owner = self, label = "▲", position = {-0.468, 2.5, 0.286}, rotation = {0, 180, 0}, scale = {0.1, 0.1, 0.1}, width = 340, height = 500, font_size = 300, tooltip = "Previous Page"}) self.createButton({click_function = "clickPageDown", function_owner = self, label = "▼", position = {-0.468, 2.5, -0.378}, rotation = {0, 180, 0}, scale = {0.1, 0.1, 0.1}, width = 340, height = 500, font_size = 300, tooltip = "Next Page"}) end function loadData() local pageNum = NOTECARD.pagenumber if NOTECARD.description[pageNum] ~= nil then modifyInput(NOTECARD.input_description, NOTECARD.description[pageNum]) modifyInput(NOTECARD.input_description, NOTECARD.fontsize[pageNum], "font_size") else addPage() loadData(pageNum) end updatePage() end -- Helpers function modifyInput(i, v, n) if n then self.editInput({index = i, [n] = v}) else self.editInput({index = i, value = v}) end end function modifyButton(i, v, n) if n then self.editButton({index = i, [n] = v}) else self.editButton({index = i, label = v}) end end -- Page Functions function addPage() NOTECARD.maxpagenumber = NOTECARD.maxpagenumber + 1 NOTECARD.description[NOTECARD.maxpagenumber] = "" NOTECARD.fontsize[NOTECARD.maxpagenumber] = 250 updateSave() end function removePage() NOTECARD.description[NOTECARD.maxpagenumber] = nil NOTECARD.fontsize[NOTECARD.maxpagenumber] = nil NOTECARD.maxpagenumber = NOTECARD.maxpagenumber - 1 updateSave() end function getPageNum() return "" .. NOTECARD.pagenumber .. " / " .. NOTECARD.maxpagenumber .. "" end function updatePage() modifyInput(NOTECARD.input_pagenumber, getPageNum()) end -- Click events function clickLockUnlock(btn, colw) NOTECARD.locked = not NOTECARD.locked if NOTECARD.locked then modifyButton(NOTECARD.button_lock, "Locked") else modifyButton(NOTECARD.button_lock, "Unlocked") end end function clickIncreaseFont(btn, col) if NOTECARD.locked then alertLocked(col) return end NOTECARD.fontsize[NOTECARD.pagenumber] = NOTECARD.fontsize[NOTECARD.pagenumber] + 10 updateSave() loadData() end function clickDecreaseFont(btn, col) if NOTECARD.locked then alertLocked(col) return end NOTECARD.fontsize[NOTECARD.pagenumber] = NOTECARD.fontsize[NOTECARD.pagenumber] - 10 updateSave() loadData() end function clickPageUp(btn, col) if NOTECARD.description[NOTECARD.maxpagenumber] == "" and #NOTECARD.description > 1 then removePage() end if NOTECARD.pagenumber > 1 then NOTECARD.pagenumber = NOTECARD.pagenumber - 1 loadData() end end function clickPageDown(btn, col) if NOTECARD.pagenumber == NOTECARD.maxpagenumber then addPage() end NOTECARD.pagenumber = NOTECARD.pagenumber + 1 loadData() end -- Input events function inputDescription(btn, col, val, sel) if NOTECARD.locked then alertLocked(col) return NOTECARD.description[NOTECARD.pagenumber] end NOTECARD.description[NOTECARD.pagenumber] = val updateSave() end function inputPageNumber(btn, col, val, sel) return getPageNum() end -- Misc function alertLocked(col) broadcastToColor("Unable to edit. Notecard is locked.", col, {1,0,0}) endLuaScriptState{"button_decfont":2,"button_incfont":1,"button_lock":0,"button_pagedown":4,"button_pageup":3,"description":[""],"fontsize":[450],"input_description":0,"input_pagenumber":1,"locked":false,"maxpagenumber":1,"pagenumber":1}XmlUI35GUID976d29Name NotecardTransformposX}eDposY z?posZ@1'@rotX ~b>rotY IV@rotZjscaleX?scaleY?scaleZ?NicknameLoaded QuestionsDescription GMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsLuaScript%-- Better Notecards -- by: Bada -- Updated: 2017-09-15 NOTECARD = {} -- Load and Save data function onLoad(saved_data) self.setDescription(" ") if saved_data ~= "" then NOTECARD = JSON.decode(saved_data) if NOTECARD.description == nil then defaults() end else defaults() end createFields() loadData() end function updateSave() saved_data = JSON.encode(NOTECARD) self.script_state = saved_data end function onSave() self.setDescription(" ") return JSON.encode(NOTECARD) end function defaults() NOTECARD = { description = { "" }, fontsize = { 250 }, pagenumber = 1, maxpagenumber = 1, locked = false, input_description = 0, input_pagenumber = 1, button_lock = 0, button_incfont = 1, button_decfont = 2, button_pageup = 3, button_pagedown = 4 } end -- Populate fields function createFields() self.createInput({input_function = "inputDescription", function_owner = self, label = "Put your number here!\n\nPut your answer here!", position = {0.032, 2.5, -0.045}, rotation = {0, 180, 0}, scale = {0.1, 0.1,0.1}, width = 4500, height = 3650, font_size = 250, tooltip = "Description", alignment = 2}) self.createInput({input_function = "inputPageNumber", function_owner = self, label = "Page Number", position = {-0.468, 2.5, -0.046}, rotation = {0, 270, 0}, scale = {0.1, 0.1, 0.1}, width = 2720, height = 310, font_size = 287, tooltip = "Page Number", alignment = 3, value = "Page Number"}) local lock_label = "Unlocked" if NOTECARD.locked then lock_label = "Locked" end self.createButton({click_function = "clickLockUnlock", function_owner = self, label = lock_label, position = {0.368, 2.5, -0.461}, rotation = {0, 180, 0}, scale = {0.1, 0.1, 0.1}, width = 1300, height = 390, font_size = 240, tooltip = "Lock / Unlock"}) self.createButton({click_function = "clickIncreaseFont", function_owner = self, label = "+", position = {-0.24, 2.5, -0.461}, rotation = {0, 180, 0}, scale = {0.1, 0.1, 0.1}, width = 400, height = 390, font_size = 400, tooltip = "Increase Font Size"}) self.createButton({click_function = "clickDecreaseFont", function_owner = self, label = "-", position = {-0.155, 2.5, -0.461}, rotation = {0, 180, 0}, scale = {0.1, 0.1, 0.1}, width = 400, height = 390, font_size = 400, tooltip = "Decrease Font Size"}) self.createButton({click_function = "clickPageUp", function_owner = self, label = "▲", position = {-0.468, 2.5, 0.286}, rotation = {0, 180, 0}, scale = {0.1, 0.1, 0.1}, width = 340, height = 500, font_size = 300, tooltip = "Previous Page"}) self.createButton({click_function = "clickPageDown", function_owner = self, label = "▼", position = {-0.468, 2.5, -0.378}, rotation = {0, 180, 0}, scale = {0.1, 0.1, 0.1}, width = 340, height = 500, font_size = 300, tooltip = "Next Page"}) end function loadData() local pageNum = NOTECARD.pagenumber if NOTECARD.description[pageNum] ~= nil then modifyInput(NOTECARD.input_description, NOTECARD.description[pageNum]) modifyInput(NOTECARD.input_description, NOTECARD.fontsize[pageNum], "font_size") else addPage() loadData(pageNum) end updatePage() end -- Helpers function modifyInput(i, v, n) if n then self.editInput({index = i, [n] = v}) else self.editInput({index = i, value = v}) end end function modifyButton(i, v, n) if n then self.editButton({index = i, [n] = v}) else self.editButton({index = i, label = v}) end end -- Page Functions function addPage() NOTECARD.maxpagenumber = NOTECARD.maxpagenumber + 1 NOTECARD.description[NOTECARD.maxpagenumber] = "" NOTECARD.fontsize[NOTECARD.maxpagenumber] = 250 updateSave() end function removePage() NOTECARD.description[NOTECARD.maxpagenumber] = nil NOTECARD.fontsize[NOTECARD.maxpagenumber] = nil NOTECARD.maxpagenumber = NOTECARD.maxpagenumber - 1 updateSave() end function getPageNum() return "" .. NOTECARD.pagenumber .. " / " .. NOTECARD.maxpagenumber .. "" end function updatePage() modifyInput(NOTECARD.input_pagenumber, getPageNum()) end -- Click events function clickLockUnlock(btn, colw) NOTECARD.locked = not NOTECARD.locked if NOTECARD.locked then modifyButton(NOTECARD.button_lock, "Locked") else modifyButton(NOTECARD.button_lock, "Unlocked") end end function clickIncreaseFont(btn, col) if NOTECARD.locked then alertLocked(col) return end NOTECARD.fontsize[NOTECARD.pagenumber] = NOTECARD.fontsize[NOTECARD.pagenumber] + 10 updateSave() loadData() end function clickDecreaseFont(btn, col) if NOTECARD.locked then alertLocked(col) return end NOTECARD.fontsize[NOTECARD.pagenumber] = NOTECARD.fontsize[NOTECARD.pagenumber] - 10 updateSave() loadData() end function clickPageUp(btn, col) if NOTECARD.description[NOTECARD.maxpagenumber] == "" and #NOTECARD.description > 1 then removePage() end if NOTECARD.pagenumber > 1 then NOTECARD.pagenumber = NOTECARD.pagenumber - 1 loadData() end end function clickPageDown(btn, col) if NOTECARD.pagenumber == NOTECARD.maxpagenumber then addPage() end NOTECARD.pagenumber = NOTECARD.pagenumber + 1 loadData() end -- Input events function inputDescription(btn, col, val, sel) if NOTECARD.locked then alertLocked(col) return NOTECARD.description[NOTECARD.pagenumber] end NOTECARD.description[NOTECARD.pagenumber] = val updateSave() end function inputPageNumber(btn, col, val, sel) return getPageNum() end -- Misc function alertLocked(col) broadcastToColor("Unable to edit. Notecard is locked.", col, {1,0,0}) endLuaScriptState{"button_decfont":2,"button_incfont":1,"button_lock":0,"button_pagedown":4,"button_pageup":3,"description":[""],"fontsize":[450],"input_description":0,"input_pagenumber":1,"locked":false,"maxpagenumber":1,"pagenumber":1}XmlUI36GUIDfdd77aName NotecardTransformposX Ur7posY`z?posZ6@rotX`itrotYof@rotZ` dd>scaleX?scaleY?scaleZ?NicknameLoaded QuestionsDescription GMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsLuaScript%-- Better Notecards -- by: Bada -- Updated: 2017-09-15 NOTECARD = {} -- Load and Save data function onLoad(saved_data) self.setDescription(" ") if saved_data ~= "" then NOTECARD = JSON.decode(saved_data) if NOTECARD.description == nil then defaults() end else defaults() end createFields() loadData() end function updateSave() saved_data = JSON.encode(NOTECARD) self.script_state = saved_data end function onSave() self.setDescription(" ") return JSON.encode(NOTECARD) end function defaults() NOTECARD = { description = { "" }, fontsize = { 250 }, pagenumber = 1, maxpagenumber = 1, locked = false, input_description = 0, input_pagenumber = 1, button_lock = 0, button_incfont = 1, button_decfont = 2, button_pageup = 3, button_pagedown = 4 } end -- Populate fields function createFields() self.createInput({input_function = "inputDescription", function_owner = self, label = "Put your number here!\n\nPut your answer here!", position = {0.032, 2.5, -0.045}, rotation = {0, 180, 0}, scale = {0.1, 0.1,0.1}, width = 4500, height = 3650, font_size = 250, tooltip = "Description", alignment = 2}) self.createInput({input_function = "inputPageNumber", function_owner = self, label = "Page Number", position = {-0.468, 2.5, -0.046}, rotation = {0, 270, 0}, scale = {0.1, 0.1, 0.1}, width = 2720, height = 310, font_size = 287, tooltip = "Page Number", alignment = 3, value = "Page Number"}) local lock_label = "Unlocked" if NOTECARD.locked then lock_label = "Locked" end self.createButton({click_function = "clickLockUnlock", function_owner = self, label = lock_label, position = {0.368, 2.5, -0.461}, rotation = {0, 180, 0}, scale = {0.1, 0.1, 0.1}, width = 1300, height = 390, font_size = 240, tooltip = "Lock / Unlock"}) self.createButton({click_function = "clickIncreaseFont", function_owner = self, label = "+", position = {-0.24, 2.5, -0.461}, rotation = {0, 180, 0}, scale = {0.1, 0.1, 0.1}, width = 400, height = 390, font_size = 400, tooltip = "Increase Font Size"}) self.createButton({click_function = "clickDecreaseFont", function_owner = self, label = "-", position = {-0.155, 2.5, -0.461}, rotation = {0, 180, 0}, scale = {0.1, 0.1, 0.1}, width = 400, height = 390, font_size = 400, tooltip = "Decrease Font Size"}) self.createButton({click_function = "clickPageUp", function_owner = self, label = "▲", position = {-0.468, 2.5, 0.286}, rotation = {0, 180, 0}, scale = {0.1, 0.1, 0.1}, width = 340, height = 500, font_size = 300, tooltip = "Previous Page"}) self.createButton({click_function = "clickPageDown", function_owner = self, label = "▼", position = {-0.468, 2.5, -0.378}, rotation = {0, 180, 0}, scale = {0.1, 0.1, 0.1}, width = 340, height = 500, font_size = 300, tooltip = "Next Page"}) end function loadData() local pageNum = NOTECARD.pagenumber if NOTECARD.description[pageNum] ~= nil then modifyInput(NOTECARD.input_description, NOTECARD.description[pageNum]) modifyInput(NOTECARD.input_description, NOTECARD.fontsize[pageNum], "font_size") else addPage() loadData(pageNum) end updatePage() end -- Helpers function modifyInput(i, v, n) if n then self.editInput({index = i, [n] = v}) else self.editInput({index = i, value = v}) end end function modifyButton(i, v, n) if n then self.editButton({index = i, [n] = v}) else self.editButton({index = i, label = v}) end end -- Page Functions function addPage() NOTECARD.maxpagenumber = NOTECARD.maxpagenumber + 1 NOTECARD.description[NOTECARD.maxpagenumber] = "" NOTECARD.fontsize[NOTECARD.maxpagenumber] = 250 updateSave() end function removePage() NOTECARD.description[NOTECARD.maxpagenumber] = nil NOTECARD.fontsize[NOTECARD.maxpagenumber] = nil NOTECARD.maxpagenumber = NOTECARD.maxpagenumber - 1 updateSave() end function getPageNum() return "" .. NOTECARD.pagenumber .. " / " .. NOTECARD.maxpagenumber .. "" end function updatePage() modifyInput(NOTECARD.input_pagenumber, getPageNum()) end -- Click events function clickLockUnlock(btn, colw) NOTECARD.locked = not NOTECARD.locked if NOTECARD.locked then modifyButton(NOTECARD.button_lock, "Locked") else modifyButton(NOTECARD.button_lock, "Unlocked") end end function clickIncreaseFont(btn, col) if NOTECARD.locked then alertLocked(col) return end NOTECARD.fontsize[NOTECARD.pagenumber] = NOTECARD.fontsize[NOTECARD.pagenumber] + 10 updateSave() loadData() end function clickDecreaseFont(btn, col) if NOTECARD.locked then alertLocked(col) return end NOTECARD.fontsize[NOTECARD.pagenumber] = NOTECARD.fontsize[NOTECARD.pagenumber] - 10 updateSave() loadData() end function clickPageUp(btn, col) if NOTECARD.description[NOTECARD.maxpagenumber] == "" and #NOTECARD.description > 1 then removePage() end if NOTECARD.pagenumber > 1 then NOTECARD.pagenumber = NOTECARD.pagenumber - 1 loadData() end end function clickPageDown(btn, col) if NOTECARD.pagenumber == NOTECARD.maxpagenumber then addPage() end NOTECARD.pagenumber = NOTECARD.pagenumber + 1 loadData() end -- Input events function inputDescription(btn, col, val, sel) if NOTECARD.locked then alertLocked(col) return NOTECARD.description[NOTECARD.pagenumber] end NOTECARD.description[NOTECARD.pagenumber] = val updateSave() end function inputPageNumber(btn, col, val, sel) return getPageNum() end -- Misc function alertLocked(col) broadcastToColor("Unable to edit. Notecard is locked.", col, {1,0,0}) endLuaScriptState{"button_decfont":2,"button_incfont":1,"button_lock":0,"button_pagedown":4,"button_pageup":3,"description":[""],"fontsize":[450],"input_description":0,"input_pagenumber":1,"locked":false,"maxpagenumber":1,"pagenumber":1}XmlUI37GUID49ef64Name NotecardTransformposX?posYz?posZ e6@rotX |>rotYf@rotZk>scaleX?scaleY?scaleZ?NicknameLoaded QuestionsDescription GMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsLuaScript%-- Better Notecards -- by: Bada -- Updated: 2017-09-15 NOTECARD = {} -- Load and Save data function onLoad(saved_data) self.setDescription(" ") if saved_data ~= "" then NOTECARD = JSON.decode(saved_data) if NOTECARD.description == nil then defaults() end else defaults() end createFields() loadData() end function updateSave() saved_data = JSON.encode(NOTECARD) self.script_state = saved_data end function onSave() self.setDescription(" ") return JSON.encode(NOTECARD) end function defaults() NOTECARD = { description = { "" }, fontsize = { 250 }, pagenumber = 1, maxpagenumber = 1, locked = false, input_description = 0, input_pagenumber = 1, button_lock = 0, button_incfont = 1, button_decfont = 2, button_pageup = 3, button_pagedown = 4 } end -- Populate fields function createFields() self.createInput({input_function = "inputDescription", function_owner = self, label = "Put your number here!\n\nPut your answer here!", position = {0.032, 2.5, -0.045}, rotation = {0, 180, 0}, scale = {0.1, 0.1,0.1}, width = 4500, height = 3650, font_size = 250, tooltip = "Description", alignment = 2}) self.createInput({input_function = "inputPageNumber", function_owner = self, label = "Page Number", position = {-0.468, 2.5, -0.046}, rotation = {0, 270, 0}, scale = {0.1, 0.1, 0.1}, width = 2720, height = 310, font_size = 287, tooltip = "Page Number", alignment = 3, value = "Page Number"}) local lock_label = "Unlocked" if NOTECARD.locked then lock_label = "Locked" end self.createButton({click_function = "clickLockUnlock", function_owner = self, label = lock_label, position = {0.368, 2.5, -0.461}, rotation = {0, 180, 0}, scale = {0.1, 0.1, 0.1}, width = 1300, height = 390, font_size = 240, tooltip = "Lock / Unlock"}) self.createButton({click_function = "clickIncreaseFont", function_owner = self, label = "+", position = {-0.24, 2.5, -0.461}, rotation = {0, 180, 0}, scale = {0.1, 0.1, 0.1}, width = 400, height = 390, font_size = 400, tooltip = "Increase Font Size"}) self.createButton({click_function = "clickDecreaseFont", function_owner = self, label = "-", position = {-0.155, 2.5, -0.461}, rotation = {0, 180, 0}, scale = {0.1, 0.1, 0.1}, width = 400, height = 390, font_size = 400, tooltip = "Decrease Font Size"}) self.createButton({click_function = "clickPageUp", function_owner = self, label = "▲", position = {-0.468, 2.5, 0.286}, rotation = {0, 180, 0}, scale = {0.1, 0.1, 0.1}, width = 340, height = 500, font_size = 300, tooltip = "Previous Page"}) self.createButton({click_function = "clickPageDown", function_owner = self, label = "▼", position = {-0.468, 2.5, -0.378}, rotation = {0, 180, 0}, scale = {0.1, 0.1, 0.1}, width = 340, height = 500, font_size = 300, tooltip = "Next Page"}) end function loadData() local pageNum = NOTECARD.pagenumber if NOTECARD.description[pageNum] ~= nil then modifyInput(NOTECARD.input_description, NOTECARD.description[pageNum]) modifyInput(NOTECARD.input_description, NOTECARD.fontsize[pageNum], "font_size") else addPage() loadData(pageNum) end updatePage() end -- Helpers function modifyInput(i, v, n) if n then self.editInput({index = i, [n] = v}) else self.editInput({index = i, value = v}) end end function modifyButton(i, v, n) if n then self.editButton({index = i, [n] = v}) else self.editButton({index = i, label = v}) end end -- Page Functions function addPage() NOTECARD.maxpagenumber = NOTECARD.maxpagenumber + 1 NOTECARD.description[NOTECARD.maxpagenumber] = "" NOTECARD.fontsize[NOTECARD.maxpagenumber] = 250 updateSave() end function removePage() NOTECARD.description[NOTECARD.maxpagenumber] = nil NOTECARD.fontsize[NOTECARD.maxpagenumber] = nil NOTECARD.maxpagenumber = NOTECARD.maxpagenumber - 1 updateSave() end function getPageNum() return "" .. NOTECARD.pagenumber .. " / " .. NOTECARD.maxpagenumber .. "" end function updatePage() modifyInput(NOTECARD.input_pagenumber, getPageNum()) end -- Click events function clickLockUnlock(btn, colw) NOTECARD.locked = not NOTECARD.locked if NOTECARD.locked then modifyButton(NOTECARD.button_lock, "Locked") else modifyButton(NOTECARD.button_lock, "Unlocked") end end function clickIncreaseFont(btn, col) if NOTECARD.locked then alertLocked(col) return end NOTECARD.fontsize[NOTECARD.pagenumber] = NOTECARD.fontsize[NOTECARD.pagenumber] + 10 updateSave() loadData() end function clickDecreaseFont(btn, col) if NOTECARD.locked then alertLocked(col) return end NOTECARD.fontsize[NOTECARD.pagenumber] = NOTECARD.fontsize[NOTECARD.pagenumber] - 10 updateSave() loadData() end function clickPageUp(btn, col) if NOTECARD.description[NOTECARD.maxpagenumber] == "" and #NOTECARD.description > 1 then removePage() end if NOTECARD.pagenumber > 1 then NOTECARD.pagenumber = NOTECARD.pagenumber - 1 loadData() end end function clickPageDown(btn, col) if NOTECARD.pagenumber == NOTECARD.maxpagenumber then addPage() end NOTECARD.pagenumber = NOTECARD.pagenumber + 1 loadData() end -- Input events function inputDescription(btn, col, val, sel) if NOTECARD.locked then alertLocked(col) return NOTECARD.description[NOTECARD.pagenumber] end NOTECARD.description[NOTECARD.pagenumber] = val updateSave() end function inputPageNumber(btn, col, val, sel) return getPageNum() end -- Misc function alertLocked(col) broadcastToColor("Unable to edit. Notecard is locked.", col, {1,0,0}) endLuaScriptState{"button_decfont":2,"button_incfont":1,"button_lock":0,"button_pagedown":4,"button_pageup":3,"description":[""],"fontsize":[450],"input_description":0,"input_pagenumber":1,"locked":false,"maxpagenumber":1,"pagenumber":1}XmlUI38GUID21a91aName NotecardTransformposX88@posY`z?posZz6@rotXR]>rotYkf@rotZ`]Q>scaleX?scaleY?scaleZ?NicknameLoaded QuestionsDescription GMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsLuaScript%-- Better Notecards -- by: Bada -- Updated: 2017-09-15 NOTECARD = {} -- Load and Save data function onLoad(saved_data) self.setDescription(" ") if saved_data ~= "" then NOTECARD = JSON.decode(saved_data) if NOTECARD.description == nil then defaults() end else defaults() end createFields() loadData() end function updateSave() saved_data = JSON.encode(NOTECARD) self.script_state = saved_data end function onSave() self.setDescription(" ") return JSON.encode(NOTECARD) end function defaults() NOTECARD = { description = { "" }, fontsize = { 250 }, pagenumber = 1, maxpagenumber = 1, locked = false, input_description = 0, input_pagenumber = 1, button_lock = 0, button_incfont = 1, button_decfont = 2, button_pageup = 3, button_pagedown = 4 } end -- Populate fields function createFields() self.createInput({input_function = "inputDescription", function_owner = self, label = "Put your number here!\n\nPut your answer here!", position = {0.032, 2.5, -0.045}, rotation = {0, 180, 0}, scale = {0.1, 0.1,0.1}, width = 4500, height = 3650, font_size = 250, tooltip = "Description", alignment = 2}) self.createInput({input_function = "inputPageNumber", function_owner = self, label = "Page Number", position = {-0.468, 2.5, -0.046}, rotation = {0, 270, 0}, scale = {0.1, 0.1, 0.1}, width = 2720, height = 310, font_size = 287, tooltip = "Page Number", alignment = 3, value = "Page Number"}) local lock_label = "Unlocked" if NOTECARD.locked then lock_label = "Locked" end self.createButton({click_function = "clickLockUnlock", function_owner = self, label = lock_label, position = {0.368, 2.5, -0.461}, rotation = {0, 180, 0}, scale = {0.1, 0.1, 0.1}, width = 1300, height = 390, font_size = 240, tooltip = "Lock / Unlock"}) self.createButton({click_function = "clickIncreaseFont", function_owner = self, label = "+", position = {-0.24, 2.5, -0.461}, rotation = {0, 180, 0}, scale = {0.1, 0.1, 0.1}, width = 400, height = 390, font_size = 400, tooltip = "Increase Font Size"}) self.createButton({click_function = "clickDecreaseFont", function_owner = self, label = "-", position = {-0.155, 2.5, -0.461}, rotation = {0, 180, 0}, scale = {0.1, 0.1, 0.1}, width = 400, height = 390, font_size = 400, tooltip = "Decrease Font Size"}) self.createButton({click_function = "clickPageUp", function_owner = self, label = "▲", position = {-0.468, 2.5, 0.286}, rotation = {0, 180, 0}, scale = {0.1, 0.1, 0.1}, width = 340, height = 500, font_size = 300, tooltip = "Previous Page"}) self.createButton({click_function = "clickPageDown", function_owner = self, label = "▼", position = {-0.468, 2.5, -0.378}, rotation = {0, 180, 0}, scale = {0.1, 0.1, 0.1}, width = 340, height = 500, font_size = 300, tooltip = "Next Page"}) end function loadData() local pageNum = NOTECARD.pagenumber if NOTECARD.description[pageNum] ~= nil then modifyInput(NOTECARD.input_description, NOTECARD.description[pageNum]) modifyInput(NOTECARD.input_description, NOTECARD.fontsize[pageNum], "font_size") else addPage() loadData(pageNum) end updatePage() end -- Helpers function modifyInput(i, v, n) if n then self.editInput({index = i, [n] = v}) else self.editInput({index = i, value = v}) end end function modifyButton(i, v, n) if n then self.editButton({index = i, [n] = v}) else self.editButton({index = i, label = v}) end end -- Page Functions function addPage() NOTECARD.maxpagenumber = NOTECARD.maxpagenumber + 1 NOTECARD.description[NOTECARD.maxpagenumber] = "" NOTECARD.fontsize[NOTECARD.maxpagenumber] = 250 updateSave() end function removePage() NOTECARD.description[NOTECARD.maxpagenumber] = nil NOTECARD.fontsize[NOTECARD.maxpagenumber] = nil NOTECARD.maxpagenumber = NOTECARD.maxpagenumber - 1 updateSave() end function getPageNum() return "" .. NOTECARD.pagenumber .. " / " .. NOTECARD.maxpagenumber .. "" end function updatePage() modifyInput(NOTECARD.input_pagenumber, getPageNum()) end -- Click events function clickLockUnlock(btn, colw) NOTECARD.locked = not NOTECARD.locked if NOTECARD.locked then modifyButton(NOTECARD.button_lock, "Locked") else modifyButton(NOTECARD.button_lock, "Unlocked") end end function clickIncreaseFont(btn, col) if NOTECARD.locked then alertLocked(col) return end NOTECARD.fontsize[NOTECARD.pagenumber] = NOTECARD.fontsize[NOTECARD.pagenumber] + 10 updateSave() loadData() end function clickDecreaseFont(btn, col) if NOTECARD.locked then alertLocked(col) return end NOTECARD.fontsize[NOTECARD.pagenumber] = NOTECARD.fontsize[NOTECARD.pagenumber] - 10 updateSave() loadData() end function clickPageUp(btn, col) if NOTECARD.description[NOTECARD.maxpagenumber] == "" and #NOTECARD.description > 1 then removePage() end if NOTECARD.pagenumber > 1 then NOTECARD.pagenumber = NOTECARD.pagenumber - 1 loadData() end end function clickPageDown(btn, col) if NOTECARD.pagenumber == NOTECARD.maxpagenumber then addPage() end NOTECARD.pagenumber = NOTECARD.pagenumber + 1 loadData() end -- Input events function inputDescription(btn, col, val, sel) if NOTECARD.locked then alertLocked(col) return NOTECARD.description[NOTECARD.pagenumber] end NOTECARD.description[NOTECARD.pagenumber] = val updateSave() end function inputPageNumber(btn, col, val, sel) return getPageNum() end -- Misc function alertLocked(col) broadcastToColor("Unable to edit. Notecard is locked.", col, {1,0,0}) endLuaScriptState{"button_decfont":2,"button_incfont":1,"button_lock":0,"button_pagedown":4,"button_pageup":3,"description":[""],"fontsize":[450],"input_description":0,"input_pagenumber":1,"locked":false,"maxpagenumber":1,"pagenumber":1}XmlUI39GUID12f1dbName NotecardTransformposX\kD@posY`z?posZ&@rotXWr>rotY!p@rotZ&hscaleX?scaleY?scaleZ?NicknameLoaded QuestionsDescription GMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsLuaScript%-- Better Notecards -- by: Bada -- Updated: 2017-09-15 NOTECARD = {} -- Load and Save data function onLoad(saved_data) self.setDescription(" ") if saved_data ~= "" then NOTECARD = JSON.decode(saved_data) if NOTECARD.description == nil then defaults() end else defaults() end createFields() loadData() end function updateSave() saved_data = JSON.encode(NOTECARD) self.script_state = saved_data end function onSave() self.setDescription(" ") return JSON.encode(NOTECARD) end function defaults() NOTECARD = { description = { "" }, fontsize = { 250 }, pagenumber = 1, maxpagenumber = 1, locked = false, input_description = 0, input_pagenumber = 1, button_lock = 0, button_incfont = 1, button_decfont = 2, button_pageup = 3, button_pagedown = 4 } end -- Populate fields function createFields() self.createInput({input_function = "inputDescription", function_owner = self, label = "Put your number here!\n\nPut your answer here!", position = {0.032, 2.5, -0.045}, rotation = {0, 180, 0}, scale = {0.1, 0.1,0.1}, width = 4500, height = 3650, font_size = 250, tooltip = "Description", alignment = 2}) self.createInput({input_function = "inputPageNumber", function_owner = self, label = "Page Number", position = {-0.468, 2.5, -0.046}, rotation = {0, 270, 0}, scale = {0.1, 0.1, 0.1}, width = 2720, height = 310, font_size = 287, tooltip = "Page Number", alignment = 3, value = "Page Number"}) local lock_label = "Unlocked" if NOTECARD.locked then lock_label = "Locked" end self.createButton({click_function = "clickLockUnlock", function_owner = self, label = lock_label, position = {0.368, 2.5, -0.461}, rotation = {0, 180, 0}, scale = {0.1, 0.1, 0.1}, width = 1300, height = 390, font_size = 240, tooltip = "Lock / Unlock"}) self.createButton({click_function = "clickIncreaseFont", function_owner = self, label = "+", position = {-0.24, 2.5, -0.461}, rotation = {0, 180, 0}, scale = {0.1, 0.1, 0.1}, width = 400, height = 390, font_size = 400, tooltip = "Increase Font Size"}) self.createButton({click_function = "clickDecreaseFont", function_owner = self, label = "-", position = {-0.155, 2.5, -0.461}, rotation = {0, 180, 0}, scale = {0.1, 0.1, 0.1}, width = 400, height = 390, font_size = 400, tooltip = "Decrease Font Size"}) self.createButton({click_function = "clickPageUp", function_owner = self, label = "▲", position = {-0.468, 2.5, 0.286}, rotation = {0, 180, 0}, scale = {0.1, 0.1, 0.1}, width = 340, height = 500, font_size = 300, tooltip = "Previous Page"}) self.createButton({click_function = "clickPageDown", function_owner = self, label = "▼", position = {-0.468, 2.5, -0.378}, rotation = {0, 180, 0}, scale = {0.1, 0.1, 0.1}, width = 340, height = 500, font_size = 300, tooltip = "Next Page"}) end function loadData() local pageNum = NOTECARD.pagenumber if NOTECARD.description[pageNum] ~= nil then modifyInput(NOTECARD.input_description, NOTECARD.description[pageNum]) modifyInput(NOTECARD.input_description, NOTECARD.fontsize[pageNum], "font_size") else addPage() loadData(pageNum) end updatePage() end -- Helpers function modifyInput(i, v, n) if n then self.editInput({index = i, [n] = v}) else self.editInput({index = i, value = v}) end end function modifyButton(i, v, n) if n then self.editButton({index = i, [n] = v}) else self.editButton({index = i, label = v}) end end -- Page Functions function addPage() NOTECARD.maxpagenumber = NOTECARD.maxpagenumber + 1 NOTECARD.description[NOTECARD.maxpagenumber] = "" NOTECARD.fontsize[NOTECARD.maxpagenumber] = 250 updateSave() end function removePage() NOTECARD.description[NOTECARD.maxpagenumber] = nil NOTECARD.fontsize[NOTECARD.maxpagenumber] = nil NOTECARD.maxpagenumber = NOTECARD.maxpagenumber - 1 updateSave() end function getPageNum() return "" .. NOTECARD.pagenumber .. " / " .. NOTECARD.maxpagenumber .. "" end function updatePage() modifyInput(NOTECARD.input_pagenumber, getPageNum()) end -- Click events function clickLockUnlock(btn, colw) NOTECARD.locked = not NOTECARD.locked if NOTECARD.locked then modifyButton(NOTECARD.button_lock, "Locked") else modifyButton(NOTECARD.button_lock, "Unlocked") end end function clickIncreaseFont(btn, col) if NOTECARD.locked then alertLocked(col) return end NOTECARD.fontsize[NOTECARD.pagenumber] = NOTECARD.fontsize[NOTECARD.pagenumber] + 10 updateSave() loadData() end function clickDecreaseFont(btn, col) if NOTECARD.locked then alertLocked(col) return end NOTECARD.fontsize[NOTECARD.pagenumber] = NOTECARD.fontsize[NOTECARD.pagenumber] - 10 updateSave() loadData() end function clickPageUp(btn, col) if NOTECARD.description[NOTECARD.maxpagenumber] == "" and #NOTECARD.description > 1 then removePage() end if NOTECARD.pagenumber > 1 then NOTECARD.pagenumber = NOTECARD.pagenumber - 1 loadData() end end function clickPageDown(btn, col) if NOTECARD.pagenumber == NOTECARD.maxpagenumber then addPage() end NOTECARD.pagenumber = NOTECARD.pagenumber + 1 loadData() end -- Input events function inputDescription(btn, col, val, sel) if NOTECARD.locked then alertLocked(col) return NOTECARD.description[NOTECARD.pagenumber] end NOTECARD.description[NOTECARD.pagenumber] = val updateSave() end function inputPageNumber(btn, col, val, sel) return getPageNum() end -- Misc function alertLocked(col) broadcastToColor("Unable to edit. Notecard is locked.", col, {1,0,0}) endLuaScriptState{"button_decfont":2,"button_incfont":1,"button_lock":0,"button_pagedown":4,"button_pageup":3,"description":[""],"fontsize":[450],"input_description":0,"input_pagenumber":1,"locked":false,"maxpagenumber":1,"pagenumber":1}XmlUI40GUID5b1a39Name NotecardTransformposXxD@posY`z?posZ@(rotX(t>rotY!p@rotZ`9iscaleX?scaleY?scaleZ?NicknameLoaded QuestionsDescription GMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsLuaScript%-- Better Notecards -- by: Bada -- Updated: 2017-09-15 NOTECARD = {} -- Load and Save data function onLoad(saved_data) self.setDescription(" ") if saved_data ~= "" then NOTECARD = JSON.decode(saved_data) if NOTECARD.description == nil then defaults() end else defaults() end createFields() loadData() end function updateSave() saved_data = JSON.encode(NOTECARD) self.script_state = saved_data end function onSave() self.setDescription(" ") return JSON.encode(NOTECARD) end function defaults() NOTECARD = { description = { "" }, fontsize = { 250 }, pagenumber = 1, maxpagenumber = 1, locked = false, input_description = 0, input_pagenumber = 1, button_lock = 0, button_incfont = 1, button_decfont = 2, button_pageup = 3, button_pagedown = 4 } end -- Populate fields function createFields() self.createInput({input_function = "inputDescription", function_owner = self, label = "Put your number here!\n\nPut your answer here!", position = {0.032, 2.5, -0.045}, rotation = {0, 180, 0}, scale = {0.1, 0.1,0.1}, width = 4500, height = 3650, font_size = 250, tooltip = "Description", alignment = 2}) self.createInput({input_function = "inputPageNumber", function_owner = self, label = "Page Number", position = {-0.468, 2.5, -0.046}, rotation = {0, 270, 0}, scale = {0.1, 0.1, 0.1}, width = 2720, height = 310, font_size = 287, tooltip = "Page Number", alignment = 3, value = "Page Number"}) local lock_label = "Unlocked" if NOTECARD.locked then lock_label = "Locked" end self.createButton({click_function = "clickLockUnlock", function_owner = self, label = lock_label, position = {0.368, 2.5, -0.461}, rotation = {0, 180, 0}, scale = {0.1, 0.1, 0.1}, width = 1300, height = 390, font_size = 240, tooltip = "Lock / Unlock"}) self.createButton({click_function = "clickIncreaseFont", function_owner = self, label = "+", position = {-0.24, 2.5, -0.461}, rotation = {0, 180, 0}, scale = {0.1, 0.1, 0.1}, width = 400, height = 390, font_size = 400, tooltip = "Increase Font Size"}) self.createButton({click_function = "clickDecreaseFont", function_owner = self, label = "-", position = {-0.155, 2.5, -0.461}, rotation = {0, 180, 0}, scale = {0.1, 0.1, 0.1}, width = 400, height = 390, font_size = 400, tooltip = "Decrease Font Size"}) self.createButton({click_function = "clickPageUp", function_owner = self, label = "▲", position = {-0.468, 2.5, 0.286}, rotation = {0, 180, 0}, scale = {0.1, 0.1, 0.1}, width = 340, height = 500, font_size = 300, tooltip = "Previous Page"}) self.createButton({click_function = "clickPageDown", function_owner = self, label = "▼", position = {-0.468, 2.5, -0.378}, rotation = {0, 180, 0}, scale = {0.1, 0.1, 0.1}, width = 340, height = 500, font_size = 300, tooltip = "Next Page"}) end function loadData() local pageNum = NOTECARD.pagenumber if NOTECARD.description[pageNum] ~= nil then modifyInput(NOTECARD.input_description, NOTECARD.description[pageNum]) modifyInput(NOTECARD.input_description, NOTECARD.fontsize[pageNum], "font_size") else addPage() loadData(pageNum) end updatePage() end -- Helpers function modifyInput(i, v, n) if n then self.editInput({index = i, [n] = v}) else self.editInput({index = i, value = v}) end end function modifyButton(i, v, n) if n then self.editButton({index = i, [n] = v}) else self.editButton({index = i, label = v}) end end -- Page Functions function addPage() NOTECARD.maxpagenumber = NOTECARD.maxpagenumber + 1 NOTECARD.description[NOTECARD.maxpagenumber] = "" NOTECARD.fontsize[NOTECARD.maxpagenumber] = 250 updateSave() end function removePage() NOTECARD.description[NOTECARD.maxpagenumber] = nil NOTECARD.fontsize[NOTECARD.maxpagenumber] = nil NOTECARD.maxpagenumber = NOTECARD.maxpagenumber - 1 updateSave() end function getPageNum() return "" .. NOTECARD.pagenumber .. " / " .. NOTECARD.maxpagenumber .. "" end function updatePage() modifyInput(NOTECARD.input_pagenumber, getPageNum()) end -- Click events function clickLockUnlock(btn, colw) NOTECARD.locked = not NOTECARD.locked if NOTECARD.locked then modifyButton(NOTECARD.button_lock, "Locked") else modifyButton(NOTECARD.button_lock, "Unlocked") end end function clickIncreaseFont(btn, col) if NOTECARD.locked then alertLocked(col) return end NOTECARD.fontsize[NOTECARD.pagenumber] = NOTECARD.fontsize[NOTECARD.pagenumber] + 10 updateSave() loadData() end function clickDecreaseFont(btn, col) if NOTECARD.locked then alertLocked(col) return end NOTECARD.fontsize[NOTECARD.pagenumber] = NOTECARD.fontsize[NOTECARD.pagenumber] - 10 updateSave() loadData() end function clickPageUp(btn, col) if NOTECARD.description[NOTECARD.maxpagenumber] == "" and #NOTECARD.description > 1 then removePage() end if NOTECARD.pagenumber > 1 then NOTECARD.pagenumber = NOTECARD.pagenumber - 1 loadData() end end function clickPageDown(btn, col) if NOTECARD.pagenumber == NOTECARD.maxpagenumber then addPage() end NOTECARD.pagenumber = NOTECARD.pagenumber + 1 loadData() end -- Input events function inputDescription(btn, col, val, sel) if NOTECARD.locked then alertLocked(col) return NOTECARD.description[NOTECARD.pagenumber] end NOTECARD.description[NOTECARD.pagenumber] = val updateSave() end function inputPageNumber(btn, col, val, sel) return getPageNum() end -- Misc function alertLocked(col) broadcastToColor("Unable to edit. Notecard is locked.", col, {1,0,0}) endLuaScriptState{"button_decfont":2,"button_incfont":1,"button_lock":0,"button_pagedown":4,"button_pageup":3,"description":[""],"fontsize":[450],"input_description":0,"input_pagenumber":1,"locked":false,"maxpagenumber":1,"pagenumber":1}XmlUI41MGUID8e8173Name DeckCustomTransformposX-posY`PP?posZ`1ٿrotX!#9>rotYnf@rotZf@scaleX˝?scaleY?scaleZ˝?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsSidewaysCardDeckIDs 0123456789101112131415161718192021222324252627282930313233CustomDeck62.FaceURLfhttp://cloud-3.steamusercontent.com/ugc/1850432692225668678/820EEC20DE1E15681F20C8E4FC9B760EBA1DFA05/BackURLfhttp://cloud-3.steamusercontent.com/ugc/1850431941405382278/B0072E263BCC0F120DE732724DAF05B3A4587A7B/NumWidth NumHeightBackIsHiddenUniqueBackTypeLuaScriptLuaScriptStateXmlUIContainedObjectsI0"GUIDca6681NameCardTransformposX/posY?posZܿrotX50[rotYf@rotZf@scaleX˝?scaleY?scaleZ˝?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDSidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects1"GUID17fc10NameCardTransformposX/posY?posZܿrotX50[rotYf@rotZf@scaleX˝?scaleY?scaleZ˝?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDSidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects2"GUIDfd8b60NameCardTransformposX/posY?posZܿrotX50[rotYf@rotZf@scaleX˝?scaleY?scaleZ˝?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDSidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects3"GUIDbd6f29NameCardTransformposX/posY?posZܿrotX50[rotYf@rotZf@scaleX˝?scaleY?scaleZ˝?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDSidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects4"GUIDaf4707NameCardTransformposX/posY?posZܿrotX50[rotYf@rotZf@scaleX˝?scaleY?scaleZ˝?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDSidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects5"GUID4c9ddeNameCardTransformposX/posY?posZܿrotX50[rotYf@rotZf@scaleX˝?scaleY?scaleZ˝?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDSidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects6"GUIDd854f0NameCardTransformposX/posY?posZܿrotX50[rotYf@rotZf@scaleX˝?scaleY?scaleZ˝?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDSidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects7"GUID323853NameCardTransformposX/posY?posZܿrotX50[rotYf@rotZf@scaleX˝?scaleY?scaleZ˝?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDSidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects8"GUIDa60b81NameCardTransformposX/posY?posZܿrotX50[rotYf@rotZf@scaleX˝?scaleY?scaleZ˝?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDSidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects9"GUID1f3409NameCardTransformposX/posY?posZܿrotX50[rotYf@rotZf@scaleX˝?scaleY?scaleZ˝?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDSidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects10"GUID73b673NameCardTransformposX/posY?posZܿrotX50[rotYf@rotZf@scaleX˝?scaleY?scaleZ˝?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDSidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects11"GUID919515NameCardTransformposX/posY?posZܿrotX50[rotYf@rotZf@scaleX˝?scaleY?scaleZ˝?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDSidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects12"GUIDc945adNameCardTransformposX/posY?posZܿrotX50[rotYf@rotZf@scaleX˝?scaleY?scaleZ˝?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDSidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects13"GUID4b15bcNameCardTransformposX/posY?posZܿrotX50[rotYf@rotZf@scaleX˝?scaleY?scaleZ˝?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDSidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects14"GUID36fb69NameCardTransformposX/posY?posZܿrotX50[rotYf@rotZf@scaleX˝?scaleY?scaleZ˝?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDSidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects15"GUID9f65eeNameCardTransformposX/posY?posZܿrotX50[rotYf@rotZf@scaleX˝?scaleY?scaleZ˝?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDSidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects16"GUID5e39b5NameCardTransformposX/posY?posZܿrotX50[rotYf@rotZf@scaleX˝?scaleY?scaleZ˝?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDSidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects17"GUIDfcd87eNameCardTransformposX/posY?posZܿrotX50[rotYf@rotZf@scaleX˝?scaleY?scaleZ˝?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDSidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects18"GUIDedf21bNameCardTransformposX/posY?posZܿrotX50[rotYf@rotZf@scaleX˝?scaleY?scaleZ˝?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDSidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects19"GUIDc61579NameCardTransformposX/posY?posZܿrotX50[rotYf@rotZf@scaleX˝?scaleY?scaleZ˝?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDSidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects20"GUID1aaae6NameCardTransformposX/posY?posZܿrotX50[rotYf@rotZf@scaleX˝?scaleY?scaleZ˝?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDSidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects21"GUID121ea7NameCardTransformposX/posY?posZܿrotX50[rotYf@rotZf@scaleX˝?scaleY?scaleZ˝?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDSidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects22"GUID2b1ea4NameCardTransformposX/posY?posZܿrotX50[rotYf@rotZf@scaleX˝?scaleY?scaleZ˝?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDSidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects23"GUID194a88NameCardTransformposX/posY?posZܿrotX50[rotYf@rotZf@scaleX˝?scaleY?scaleZ˝?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDSidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects24"GUIDa9cd05NameCardTransformposX/posY?posZܿrotX50[rotYf@rotZf@scaleX˝?scaleY?scaleZ˝?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDSidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects25"GUIDeaca65NameCardTransformposX/posY?posZܿrotX50[rotYf@rotZf@scaleX˝?scaleY?scaleZ˝?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDSidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects26"GUIDf458cbNameCardTransformposX/posY?posZܿrotX50[rotYf@rotZf@scaleX˝?scaleY?scaleZ˝?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDSidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects27"GUIDcfb3fdNameCardTransformposX/posY?posZܿrotX50[rotYf@rotZf@scaleX˝?scaleY?scaleZ˝?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDSidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects28"GUIDb87731NameCardTransformposX/posY?posZܿrotX50[rotYf@rotZf@scaleX˝?scaleY?scaleZ˝?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDSidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects29"GUID323e73NameCardTransformposX/posY?posZܿrotX50[rotYf@rotZf@scaleX˝?scaleY?scaleZ˝?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDSidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects30"GUIDd32a28NameCardTransformposX/posY?posZܿrotX50[rotYf@rotZf@scaleX˝?scaleY?scaleZ˝?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDSidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects31"GUIDb81db6NameCardTransformposX/posY?posZܿrotX50[rotYf@rotZf@scaleX˝?scaleY?scaleZ˝?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDSidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects32"GUID5af69fNameCardTransformposX/posY?posZܿrotX50[rotYf@rotZf@scaleX˝?scaleY?scaleZ˝?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDSidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects33"GUID3844cfNameCardTransformposX/posY?posZܿrotX50[rotYf@rotZf@scaleX˝?scaleY?scaleZ˝?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDSidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects42WGUID0f5de0Name DeckCustomTransformposX-posY?posZ@rotX srotYf@rotZf@scaleX˝?scaleY?scaleZ˝?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsSidewaysCardDeckIDs0;1l27354d5f6k7<889F10V11\12W13@14P15416c17b18K19]20921`22623024-25a26D27N28?29J30A31/32[33T34^35R36L37G38,39i40.41>42243E44C45346Y47e48B49h50=51I52g53Z54U55_56H57X58O59160:61j62S63Q64MCustomDeck63.FaceURLfhttp://cloud-3.steamusercontent.com/ugc/1850432692225679066/F4FAF652DA6CE8BA30F6D602924E955251D70071/BackURLfhttp://cloud-3.steamusercontent.com/ugc/1850431941405426413/AD59088B55F2A832F4E9CE2C2DAEFB3D4D00DE68/NumWidth NumHeightBackIsHiddenUniqueBackTypeLuaScriptLuaScriptStateXmlUIContainedObjectsߌ0"GUID83b317NameCardTransformposX!.posY?posZ\@rotXj9rotYf@rotZf@scaleX?scaleY?scaleZ?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardID;SidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects1"GUID583d55NameCardTransformposX!.posY?posZ\@rotXj9rotYf@rotZf@scaleX?scaleY?scaleZ?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDlSidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects2"GUID690db1NameCardTransformposX!.posY?posZ\@rotXj9rotYf@rotZf@scaleX?scaleY?scaleZ?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardID7SidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects3"GUID3edcaaNameCardTransformposX!.posY?posZ\@rotXj9rotYf@rotZf@scaleX?scaleY?scaleZ?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardID5SidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects4"GUIDde151eNameCardTransformposX!.posY?posZ\@rotXj9rotYf@rotZf@scaleX?scaleY?scaleZ?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDdSidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects5"GUID9438cbNameCardTransformposX!.posY?posZ\@rotXj9rotYf@rotZf@scaleX?scaleY?scaleZ?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDfSidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects6"GUIDaee0deNameCardTransformposX!.posY?posZ\@rotXj9rotYf@rotZf@scaleX?scaleY?scaleZ?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDkSidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects7"GUID1125a3NameCardTransformposX!.posY?posZ\@rotXj9rotYf@rotZf@scaleX?scaleY?scaleZ?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardID<SidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects8"GUID2b30beNameCardTransformposX!.posY?posZ\@rotXj9rotYf@rotZf@scaleX?scaleY?scaleZ?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardID8SidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects9"GUIDccb530NameCardTransformposX!.posY?posZ\@rotXj9rotYf@rotZf@scaleX?scaleY?scaleZ?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDFSidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects10"GUID1c4d0dNameCardTransformposX!.posY?posZ\@rotXj9rotYf@rotZf@scaleX?scaleY?scaleZ?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDVSidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects11"GUID16b708NameCardTransformposX!.posY?posZ\@rotXj9rotYf@rotZf@scaleX?scaleY?scaleZ?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardID\SidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects12"GUIDcad16cNameCardTransformposX!.posY?posZ\@rotXj9rotYf@rotZf@scaleX?scaleY?scaleZ?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDWSidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects13"GUIDfd4e8bNameCardTransformposX!.posY?posZ\@rotXj9rotYf@rotZf@scaleX?scaleY?scaleZ?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardID@SidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects14"GUID99cbb4NameCardTransformposX!.posY?posZ\@rotXj9rotYf@rotZf@scaleX?scaleY?scaleZ?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDPSidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects15"GUIDd87163NameCardTransformposX!.posY?posZ\@rotXj9rotYf@rotZf@scaleX?scaleY?scaleZ?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardID4SidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects16"GUID22d205NameCardTransformposX!.posY?posZ\@rotXj9rotYf@rotZf@scaleX?scaleY?scaleZ?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDcSidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects17"GUIDc99e3fNameCardTransformposX!.posY?posZ\@rotXj9rotYf@rotZf@scaleX?scaleY?scaleZ?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDbSidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects18"GUID384ce3NameCardTransformposX!.posY?posZ\@rotXj9rotYf@rotZf@scaleX?scaleY?scaleZ?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDKSidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects19"GUID5dda19NameCardTransformposX!.posY?posZ\@rotXj9rotYf@rotZf@scaleX?scaleY?scaleZ?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardID]SidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects20"GUIDc8c79eNameCardTransformposX!.posY?posZ\@rotXj9rotYf@rotZf@scaleX?scaleY?scaleZ?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardID9SidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects21"GUIDf24f2fNameCardTransformposX!.posY?posZ\@rotXj9rotYf@rotZf@scaleX?scaleY?scaleZ?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardID`SidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects22"GUID5e2a3cNameCardTransformposX!.posY?posZ\@rotXj9rotYf@rotZf@scaleX?scaleY?scaleZ?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardID6SidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects23"GUID8f7812NameCardTransformposX!.posY?posZ\@rotXj9rotYf@rotZf@scaleX?scaleY?scaleZ?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardID0SidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects24"GUIDa66b13NameCardTransformposX!.posY?posZ\@rotXj9rotYf@rotZf@scaleX?scaleY?scaleZ?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardID-SidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects25"GUID295f71NameCardTransformposX!.posY?posZ\@rotXj9rotYf@rotZf@scaleX?scaleY?scaleZ?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDaSidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects26"GUIDb2038dNameCardTransformposX!.posY?posZ\@rotXj9rotYf@rotZf@scaleX?scaleY?scaleZ?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDDSidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects27"GUID378c5eNameCardTransformposX!.posY?posZ\@rotXj9rotYf@rotZf@scaleX?scaleY?scaleZ?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDNSidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects28"GUID300a10NameCardTransformposX!.posY?posZ\@rotXj9rotYf@rotZf@scaleX?scaleY?scaleZ?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardID?SidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects29"GUID1aea82NameCardTransformposX!.posY?posZ\@rotXj9rotYf@rotZf@scaleX?scaleY?scaleZ?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDJSidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects30"GUID4985c6NameCardTransformposX!.posY?posZ\@rotXj9rotYf@rotZf@scaleX?scaleY?scaleZ?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDASidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects31"GUID14c590NameCardTransformposX!.posY?posZ\@rotXj9rotYf@rotZf@scaleX?scaleY?scaleZ?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardID/SidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects32"GUID18eaccNameCardTransformposX!.posY?posZ\@rotXj9rotYf@rotZf@scaleX?scaleY?scaleZ?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardID[SidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects33`GUIDfc5abdNameCardTransformposX`y-posYv)?posZV0@rotXLjhrotY@f@rotZ f@scaleX˝?scaleY?scaleZ˝?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsCardIDTSidewaysCardCustomDeck63.FaceURLfhttp://cloud-3.steamusercontent.com/ugc/1850432692225679066/F4FAF652DA6CE8BA30F6D602924E955251D70071/BackURLfhttp://cloud-3.steamusercontent.com/ugc/1850431941405426413/AD59088B55F2A832F4E9CE2C2DAEFB3D4D00DE68/NumWidth NumHeightBackIsHiddenUniqueBackTypeLuaScriptLuaScriptStateXmlUI34"GUID95842bNameCardTransformposX!.posY?posZ\@rotXj9rotYf@rotZf@scaleX?scaleY?scaleZ?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardID^SidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects35"GUID5b189aNameCardTransformposX!.posY?posZ\@rotXj9rotYf@rotZf@scaleX?scaleY?scaleZ?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDRSidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects36"GUID46a1d4NameCardTransformposX!.posY?posZ\@rotXj9rotYf@rotZf@scaleX?scaleY?scaleZ?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDLSidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects37"GUID31d81bNameCardTransformposX!.posY?posZ\@rotXj9rotYf@rotZf@scaleX?scaleY?scaleZ?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDGSidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects38"GUID7809f6NameCardTransformposX!.posY?posZ\@rotXj9rotYf@rotZf@scaleX?scaleY?scaleZ?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardID,SidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects39"GUIDed3590NameCardTransformposX!.posY?posZ\@rotXj9rotYf@rotZf@scaleX?scaleY?scaleZ?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDiSidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects40"GUID888297NameCardTransformposX!.posY?posZ\@rotXj9rotYf@rotZf@scaleX?scaleY?scaleZ?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardID.SidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects41"GUID4f58b1NameCardTransformposX!.posY?posZ\@rotXj9rotYf@rotZf@scaleX?scaleY?scaleZ?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardID>SidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects42"GUIDda437bNameCardTransformposX!.posY?posZ\@rotXj9rotYf@rotZf@scaleX?scaleY?scaleZ?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardID2SidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects43"GUID0df974NameCardTransformposX!.posY?posZ\@rotXj9rotYf@rotZf@scaleX?scaleY?scaleZ?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDESidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects44"GUID888c2aNameCardTransformposX!.posY?posZ\@rotXj9rotYf@rotZf@scaleX?scaleY?scaleZ?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDCSidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects45"GUID0e902fNameCardTransformposX!.posY?posZ\@rotXj9rotYf@rotZf@scaleX?scaleY?scaleZ?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardID3SidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects46"GUID5dac39NameCardTransformposX!.posY?posZ\@rotXj9rotYf@rotZf@scaleX?scaleY?scaleZ?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDYSidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects47"GUID1b785aNameCardTransformposX!.posY?posZ\@rotXj9rotYf@rotZf@scaleX?scaleY?scaleZ?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDeSidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects48"GUID4e2329NameCardTransformposX!.posY?posZ\@rotXj9rotYf@rotZf@scaleX?scaleY?scaleZ?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDBSidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects49"GUID7e2b17NameCardTransformposX!.posY?posZ\@rotXj9rotYf@rotZf@scaleX?scaleY?scaleZ?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDhSidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects50"GUIDf88a56NameCardTransformposX!.posY?posZ\@rotXj9rotYf@rotZf@scaleX?scaleY?scaleZ?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardID=SidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects51"GUID77ebe4NameCardTransformposX!.posY?posZ\@rotXj9rotYf@rotZf@scaleX?scaleY?scaleZ?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDISidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects52"GUID129c79NameCardTransformposX!.posY?posZ\@rotXj9rotYf@rotZf@scaleX?scaleY?scaleZ?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDgSidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects53"GUIDe97ac0NameCardTransformposX!.posY?posZ\@rotXj9rotYf@rotZf@scaleX?scaleY?scaleZ?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDZSidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects54"GUID5a0776NameCardTransformposX!.posY?posZ\@rotXj9rotYf@rotZf@scaleX?scaleY?scaleZ?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDUSidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects55"GUID2a725aNameCardTransformposX!.posY?posZ\@rotXj9rotYf@rotZf@scaleX?scaleY?scaleZ?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardID_SidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects56"GUID3c5356NameCardTransformposX!.posY?posZ\@rotXj9rotYf@rotZf@scaleX?scaleY?scaleZ?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDHSidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects57"GUID429bedNameCardTransformposX!.posY?posZ\@rotXj9rotYf@rotZf@scaleX?scaleY?scaleZ?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDXSidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects58"GUIDb70834NameCardTransformposX!.posY?posZ\@rotXj9rotYf@rotZf@scaleX?scaleY?scaleZ?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDOSidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects59"GUIDe05343NameCardTransformposX!.posY?posZ\@rotXj9rotYf@rotZf@scaleX?scaleY?scaleZ?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardID1SidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects60"GUIDddd340NameCardTransformposX!.posY?posZ\@rotXj9rotYf@rotZf@scaleX?scaleY?scaleZ?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardID:SidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects61"GUID33f357NameCardTransformposX!.posY?posZ\@rotXj9rotYf@rotZf@scaleX?scaleY?scaleZ?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDjSidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects62"GUIDfb2013NameCardTransformposX!.posY?posZ\@rotXj9rotYf@rotZf@scaleX?scaleY?scaleZ?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDSSidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects63"GUIDd1be6dNameCardTransformposX!.posY?posZ\@rotXj9rotYf@rotZf@scaleX?scaleY?scaleZ?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDQSidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects64"GUID6aaaadNameCardTransformposX!.posY?posZ\@rotXj9rotYf@rotZf@scaleX?scaleY?scaleZ?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDMSidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects43GUID18dba9Name DeckCustomTransformposX`-posYO?posZ@rotX@8>rotYf@rotZf@scaleX ?scaleY?scaleZ ?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsSidewaysCardDeckIDs=01234567CustomDeck64.FaceURLfhttp://cloud-3.steamusercontent.com/ugc/1850432692225682394/59865B4AE8388FB83AED31F8BE18242584FA1099/BackURLfhttp://cloud-3.steamusercontent.com/ugc/1850431941405442185/31E36F384A76189950C35487E9C570CBD58C5DF3/NumWidth NumHeightBackIsHiddenUniqueBackTypeLuaScriptLuaScriptStateXmlUIContainedObjects-0"GUID60ff43NameCardTransformposX@ں-posY`?posZrotX@\<`rotYf@rotZf@scaleX?scaleY?scaleZ?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDSidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects1"GUIDa333cfNameCardTransformposX@ں-posY`?posZrotX@\<`rotYf@rotZf@scaleX?scaleY?scaleZ?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDSidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects2"GUIDcf2e3cNameCardTransformposX@ں-posY`?posZrotX@\<`rotYf@rotZf@scaleX?scaleY?scaleZ?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDSidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects3"GUIDb43783NameCardTransformposX@ں-posY`?posZrotX@\<`rotYf@rotZf@scaleX?scaleY?scaleZ?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDSidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects4"GUIDb378a2NameCardTransformposX@ں-posY`?posZrotX@\<`rotYf@rotZf@scaleX?scaleY?scaleZ?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDSidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects5"GUIDdc38f7NameCardTransformposX@ں-posY`?posZrotX@\<`rotYf@rotZf@scaleX?scaleY?scaleZ?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDSidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects6"GUIDdaf148NameCardTransformposX@ں-posY`?posZrotX@\<`rotYf@rotZf@scaleX?scaleY?scaleZ?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDSidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects7"GUIDd13feaNameCardTransformposX@ں-posY`?posZrotX@\<`rotYf@rotZf@scaleX?scaleY?scaleZ?NicknameDescriptionGMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHandsCardIDSidewaysCardLuaScriptLuaScriptStateXmlUIContainedObjects44GUID86bb8aName NotecardTransformposX%7@posYz?posZ@U6rotXi|rotYOu?rotZ@>scaleX?scaleY?scaleZ?NicknameLoaded QuestionsDescription GMNotesColorDiffuse&r?g?b?LayoutGroupSortIndexValueLockedGridSnapIgnoreFoWMeasureMovementDragSelectableAutoraiseStickyTooltipGridProjectionHideWhenFaceDownHandsLuaScript%-- Better Notecards -- by: Bada -- Updated: 2017-09-15 NOTECARD = {} -- Load and Save data function onLoad(saved_data) self.setDescription(" ") if saved_data ~= "" then NOTECARD = JSON.decode(saved_data) if NOTECARD.description == nil then defaults() end else defaults() end createFields() loadData() end function updateSave() saved_data = JSON.encode(NOTECARD) self.script_state = saved_data end function onSave() self.setDescription(" ") return JSON.encode(NOTECARD) end function defaults() NOTECARD = { description = { "" }, fontsize = { 250 }, pagenumber = 1, maxpagenumber = 1, locked = false, input_description = 0, input_pagenumber = 1, button_lock = 0, button_incfont = 1, button_decfont = 2, button_pageup = 3, button_pagedown = 4 } end -- Populate fields function createFields() self.createInput({input_function = "inputDescription", function_owner = self, label = "Put your number here!\n\nPut your answer here!", position = {0.032, 2.5, -0.045}, rotation = {0, 180, 0}, scale = {0.1, 0.1,0.1}, width = 4500, height = 3650, font_size = 250, tooltip = "Description", alignment = 2}) self.createInput({input_function = "inputPageNumber", function_owner = self, label = "Page Number", position = {-0.468, 2.5, -0.046}, rotation = {0, 270, 0}, scale = {0.1, 0.1, 0.1}, width = 2720, height = 310, font_size = 287, tooltip = "Page Number", alignment = 3, value = "Page Number"}) local lock_label = "Unlocked" if NOTECARD.locked then lock_label = "Locked" end self.createButton({click_function = "clickLockUnlock", function_owner = self, label = lock_label, position = {0.368, 2.5, -0.461}, rotation = {0, 180, 0}, scale = {0.1, 0.1, 0.1}, width = 1300, height = 390, font_size = 240, tooltip = "Lock / Unlock"}) self.createButton({click_function = "clickIncreaseFont", function_owner = self, label = "+", position = {-0.24, 2.5, -0.461}, rotation = {0, 180, 0}, scale = {0.1, 0.1, 0.1}, width = 400, height = 390, font_size = 400, tooltip = "Increase Font Size"}) self.createButton({click_function = "clickDecreaseFont", function_owner = self, label = "-", position = {-0.155, 2.5, -0.461}, rotation = {0, 180, 0}, scale = {0.1, 0.1, 0.1}, width = 400, height = 390, font_size = 400, tooltip = "Decrease Font Size"}) self.createButton({click_function = "clickPageUp", function_owner = self, label = "▲", position = {-0.468, 2.5, 0.286}, rotation = {0, 180, 0}, scale = {0.1, 0.1, 0.1}, width = 340, height = 500, font_size = 300, tooltip = "Previous Page"}) self.createButton({click_function = "clickPageDown", function_owner = self, label = "▼", position = {-0.468, 2.5, -0.378}, rotation = {0, 180, 0}, scale = {0.1, 0.1, 0.1}, width = 340, height = 500, font_size = 300, tooltip = "Next Page"}) end function loadData() local pageNum = NOTECARD.pagenumber if NOTECARD.description[pageNum] ~= nil then modifyInput(NOTECARD.input_description, NOTECARD.description[pageNum]) modifyInput(NOTECARD.input_description, NOTECARD.fontsize[pageNum], "font_size") else addPage() loadData(pageNum) end updatePage() end -- Helpers function modifyInput(i, v, n) if n then self.editInput({index = i, [n] = v}) else self.editInput({index = i, value = v}) end end function modifyButton(i, v, n) if n then self.editButton({index = i, [n] = v}) else self.editButton({index = i, label = v}) end end -- Page Functions function addPage() NOTECARD.maxpagenumber = NOTECARD.maxpagenumber + 1 NOTECARD.description[NOTECARD.maxpagenumber] = "" NOTECARD.fontsize[NOTECARD.maxpagenumber] = 250 updateSave() end function removePage() NOTECARD.description[NOTECARD.maxpagenumber] = nil NOTECARD.fontsize[NOTECARD.maxpagenumber] = nil NOTECARD.maxpagenumber = NOTECARD.maxpagenumber - 1 updateSave() end function getPageNum() return "" .. NOTECARD.pagenumber .. " / " .. NOTECARD.maxpagenumber .. "" end function updatePage() modifyInput(NOTECARD.input_pagenumber, getPageNum()) end -- Click events function clickLockUnlock(btn, colw) NOTECARD.locked = not NOTECARD.locked if NOTECARD.locked then modifyButton(NOTECARD.button_lock, "Locked") else modifyButton(NOTECARD.button_lock, "Unlocked") end end function clickIncreaseFont(btn, col) if NOTECARD.locked then alertLocked(col) return end NOTECARD.fontsize[NOTECARD.pagenumber] = NOTECARD.fontsize[NOTECARD.pagenumber] + 10 updateSave() loadData() end function clickDecreaseFont(btn, col) if NOTECARD.locked then alertLocked(col) return end NOTECARD.fontsize[NOTECARD.pagenumber] = NOTECARD.fontsize[NOTECARD.pagenumber] - 10 updateSave() loadData() end function clickPageUp(btn, col) if NOTECARD.description[NOTECARD.maxpagenumber] == "" and #NOTECARD.description > 1 then removePage() end if NOTECARD.pagenumber > 1 then NOTECARD.pagenumber = NOTECARD.pagenumber - 1 loadData() end end function clickPageDown(btn, col) if NOTECARD.pagenumber == NOTECARD.maxpagenumber then addPage() end NOTECARD.pagenumber = NOTECARD.pagenumber + 1 loadData() end -- Input events function inputDescription(btn, col, val, sel) if NOTECARD.locked then alertLocked(col) return NOTECARD.description[NOTECARD.pagenumber] end NOTECARD.description[NOTECARD.pagenumber] = val updateSave() end function inputPageNumber(btn, col, val, sel) return getPageNum() end -- Misc function alertLocked(col) broadcastToColor("Unable to edit. Notecard is locked.", col, {1,0,0}) endLuaScriptState{"button_decfont":2,"button_incfont":1,"button_lock":0,"button_pagedown":4,"button_pageup":3,"description":[""],"fontsize":[450],"input_description":0,"input_pagenumber":1,"locked":false,"maxpagenumber":1,"pagenumber":1}XmlUI