275 lines
20 KiB
YAML
275 lines
20 KiB
YAML
AltLookAngle:
|
|
x: 0.0
|
|
y: 0.0
|
|
z: 0.0
|
|
Autoraise: true
|
|
ColorDiffuse:
|
|
b: 1.0
|
|
g: 1.0
|
|
r: 1.0
|
|
CustomImage:
|
|
CustomToken:
|
|
MergeDistancePixels: 15.0
|
|
Stackable: false
|
|
StandUp: false
|
|
Thickness: 0.2
|
|
ImageScalar: 1.0
|
|
ImageSecondaryURL: ''
|
|
ImageURL: http://cloud-3.steamusercontent.com/ugc/1847049778276400654/CA0CB2DFEC2369A88438155657A68BE20B90A90E/
|
|
WidthScale: 0.0
|
|
Description: ''
|
|
DragSelectable: true
|
|
GMNotes: ''
|
|
GUID: eda22b
|
|
Grid: true
|
|
GridProjection: false
|
|
Hands: false
|
|
HideWhenFaceDown: false
|
|
IgnoreFoW: false
|
|
LayoutGroupSortIndex: 0
|
|
Locked: false
|
|
LuaScript: !include 'Custom_Token Jumanji Campaign Log 1 eda22b.ttslua'
|
|
LuaScriptState: '{"checkbox":[],"counter":[{"hideBG":true,"pos":[-1.08,0.1,-1.01],"size":800,"value":0},{"hideBG":true,"pos":[-1.27,0.1,-0.79],"size":600,"value":0},{"hideBG":true,"pos":[-1,0.1,-0.79],"size":600,"value":0},{"hideBG":true,"pos":[-0.251,0.1,-1.01],"size":800,"value":0},{"hideBG":true,"pos":[-0.441,0.1,-0.79],"size":600,"value":0},{"hideBG":true,"pos":[-0.171,0.1,-0.79],"size":600,"value":0},{"hideBG":true,"pos":[0.579,0.1,-1.01],"size":800,"value":0},{"hideBG":true,"pos":[0.389,0.1,-0.79],"size":600,"value":0},{"hideBG":true,"pos":[0.659,0.1,-0.79],"size":600,"value":0},{"hideBG":true,"pos":[1.407,0.1,-1.01],"size":800,"value":0},{"hideBG":true,"pos":[1.217,0.1,-0.79],"size":600,"value":0},{"hideBG":true,"pos":[1.487,0.1,-0.79],"size":600,"value":0}],"textbox":[{"alignment":2,"font_size":300,"label":"Empty","pos":[-1.265,0.1,-1.39],"rows":1,"value":"","width":3800},{"alignment":2,"font_size":300,"label":"Empty","pos":[-1.265,0.1,-1.195],"rows":1,"value":"","width":3800},{"alignment":2,"font_size":300,"label":"Empty","pos":[-1.265,0.1,-0.42],"rows":7,"value":"","width":3800},{"alignment":2,"font_size":300,"label":"Empty","pos":[-0.436,0.1,-1.39],"rows":1,"value":"","width":3800},{"alignment":2,"font_size":300,"label":"Empty","pos":[-0.436,0.1,-1.195],"rows":1,"value":"","width":3800},{"alignment":2,"font_size":300,"label":"Empty","pos":[-0.436,0.1,-0.42],"rows":7,"value":"","width":3800},{"alignment":2,"font_size":300,"label":"Empty","pos":[0.394,0.1,-1.39],"rows":1,"value":"","width":3800},{"alignment":2,"font_size":300,"label":"Empty","pos":[0.394,0.1,-1.195],"rows":1,"value":"","width":3800},{"alignment":2,"font_size":300,"label":"Empty","pos":[0.394,0.1,-0.42],"rows":7,"value":"","width":3800},{"alignment":2,"font_size":300,"label":"Empty","pos":[1.222,0.1,-1.39],"rows":1,"value":"","width":3800},{"alignment":2,"font_size":300,"label":"Empty","pos":[1.222,0.1,-1.195],"rows":1,"value":"","width":3800},{"alignment":2,"font_size":300,"label":"Empty","pos":[1.222,0.1,-0.42],"rows":7,"value":"","width":3800},{"alignment":2,"font_size":300,"label":"Empty","pos":[-0.93,0.1,0.93],"rows":27,"value":"","width":7800},{"alignment":2,"font_size":300,"label":"Empty","pos":[0.82,0.1,0.707],"rows":20,"value":"","width":7800},{"alignment":2,"font_size":300,"label":"Empty","pos":[1.01,0.1,1.7],"rows":5,"value":"","width":7400}]}'
|
|
MeasureMovement: false
|
|
Name: Custom_Token
|
|
Nickname: Jumanji Campaign Log 1
|
|
Snap: true
|
|
States:
|
|
'2':
|
|
AltLookAngle:
|
|
x: 0.0
|
|
y: 0.0
|
|
z: 0.0
|
|
Autoraise: true
|
|
ColorDiffuse:
|
|
b: 1.0
|
|
g: 1.0
|
|
r: 1.0
|
|
CustomImage:
|
|
CustomToken:
|
|
MergeDistancePixels: 15.0
|
|
Stackable: false
|
|
StandUp: false
|
|
Thickness: 0.2
|
|
ImageScalar: 1.0
|
|
ImageSecondaryURL: ''
|
|
ImageURL: http://cloud-3.steamusercontent.com/ugc/1847049778276403495/316E06F3D6F35585DFA7C9F161D9B6F0C6D34558/
|
|
WidthScale: 0.0
|
|
Description: ''
|
|
DragSelectable: true
|
|
GMNotes: ''
|
|
GUID: a9628a
|
|
Grid: true
|
|
GridProjection: false
|
|
Hands: false
|
|
HideWhenFaceDown: false
|
|
IgnoreFoW: false
|
|
LayoutGroupSortIndex: 0
|
|
Locked: false
|
|
LuaScript: "--[[ Character Sheet Template by: MrStump\r\n\r\nYou can set\
|
|
\ up your own character sheet if you follow these steps.\r\n\r\nStep 1) Change\
|
|
\ the character sheet image\r\n -Right click on the character sheet, click\
|
|
\ Custom\r\n -Replace the image URL with one for your character sheet\r\n\
|
|
\ -Click import, make sure your sheet loads\r\n -SAVE THE GAME (the table\
|
|
\ setup)\r\n -LOAD FROM THAT SAVE YOU JUST MADE\r\n\r\nStep 2) Edit script\
|
|
\ to fit your character sheet\r\n -Below you will see some general options,\
|
|
\ and then the big data table\r\n -The data table is what determines how\
|
|
\ many of which buttons are made\r\n -Checkboxes\r\n -Counters\r\
|
|
\n -Textboxes\r\n -By default, there are 3 of each. You can add more\
|
|
\ or remove entries\r\n -If you intend to add/remove, be sure only to add/remove\
|
|
\ ENTRIES\r\n -This is what an entry looks like:\r\n {\r\n\
|
|
\ pos = {-0.977,0.1,-0.589},\r\n size = 800,\r\
|
|
\n state = false\r\n },\r\n -Deleting the whole\
|
|
\ thing would remove that specific item on the sheet\r\n -Copy and pasting\
|
|
\ it after another entry would create another\r\n -Each entry type has unique\
|
|
\ data points (pos, size, state, etc)\r\n -Do not try to add in your\
|
|
\ own data points or remove them individually\r\n -There is a summary\
|
|
\ of what each point does at the top of its category\r\n\r\nStep 3) Save and\
|
|
\ check script changes\r\n -Hit Save & Apply in the script window to save\
|
|
\ your code\r\n -You can edit your code as needed and Save+Apply as often\
|
|
\ as needed\r\n -When you are finished, make disableSave = false below then\
|
|
\ Save+apply\r\n -This enables saving, so your sheet will remember whats\
|
|
\ on it.\r\n\r\nBonus) Finding/Editing Positions for elements\r\n I have\
|
|
\ included a tool to get positions for buttons in {x,y,z} form\r\n Place\
|
|
\ it where you want the center of your element to be\r\n Then copy the table\
|
|
\ from the notes (lower right of screen)\r\n You can highlight it and\
|
|
\ CTRL+C\r\n Paste it into the data table where needed (pos=)\r\n If you\
|
|
\ want to manually tweek the values:\r\n {0,0,0} is the center of the\
|
|
\ character sheet\r\n {1,0,0} is right, {-1,0,0} is left\r\n {0,0,-1}\
|
|
\ is up, {0,0,1} is down\r\n 0.1 for Y is the height off of the page.\r\
|
|
\n If it was 0, it would be down inside the model of the sheet\r\n\
|
|
\r\nBegin editing below: ]]\r\n\r\n--Set this to true while editing and false\
|
|
\ when you have finished\r\ndisableSave = false\r\n--Remember to set this to\
|
|
\ false once you are done making changes\r\n--Then, after you save & apply it,\
|
|
\ save your game too\r\n\r\n--Color information for button text (r,g,b, values\
|
|
\ of 0-1)\r\nbuttonFontColor = {0,0,0}\r\n--Color information for button background\r\
|
|
\nbuttonColor = {1,1,1}\r\n--Change scale of button (Avoid changing if possible)\r\
|
|
\nbuttonScale = {0.1,0.1,0.1}\r\n\r\n--This is the button placement information\r\
|
|
\ndefaultButtonData = {\r\n --Add checkboxes\r\n checkbox = {\r\n \
|
|
\ --[[\r\n pos = the position (pasted from the helper tool)\r\n\
|
|
\ size = height/width/font_size for checkbox\r\n state = default\
|
|
\ starting value for checkbox (true=checked, false=not)\r\n ]]\r\n \
|
|
\ --Home Invasion\r\n {\r\n pos = {-1.370,0.1,-0.158},\r\
|
|
\n size = 600,\r\n state = false\r\n },\r\n\
|
|
\ --Urban Jungle\r\n {\r\n pos = {-1.352,0.1,-0.031},\r\
|
|
\n size = 600,\r\n state = false\r\n },\r\n\
|
|
\ --Back to Start\r\n {\r\n pos = {-1.339,0.1,0.099},\r\
|
|
\n size = 600,\r\n state = false\r\n },\r\n\
|
|
\ --Urban Jungle\r\n {\r\n pos = {-1.331,0.1,0.234},\r\
|
|
\n size = 600,\r\n state = false\r\n },\r\n\
|
|
\ --Force of Nature\r\n {\r\n pos = {-1.319,0.1,0.369},\r\
|
|
\n size = 600,\r\n state = false\r\n },\r\n\
|
|
\ --1: Cultist Token\r\n {\r\n pos = {-1.268,0.1,1.158},\r\
|
|
\n size = 600,\r\n state = false\r\n },\r\n\
|
|
\ --1: Monster Token\r\n {\r\n pos = {-0.773,0.1,1.119},\r\
|
|
\n size = 600,\r\n state = false\r\n },\r\n\
|
|
\ --2: Cultist Token\r\n {\r\n pos = {-1.260,0.1,1.287},\r\
|
|
\n size = 600,\r\n state = false\r\n },\r\n\
|
|
\ --2: Tablet Token\r\n {\r\n pos = {-0.760,0.1,1.251},\r\
|
|
\n size = 600,\r\n state = false\r\n },\r\n\
|
|
\ --3: Tablet Token\r\n {\r\n pos = {-1.247,0.1,1.420},\r\
|
|
\n size = 600,\r\n state = false\r\n },\r\n\
|
|
\ --3: Monster Token\r\n {\r\n pos = {-0.751,0.1,1.380},\r\
|
|
\n size = 600,\r\n state = false\r\n },\r\n\
|
|
\ --4: Cultist Token\r\n {\r\n pos = {-1.239,0.1,1.549},\r\
|
|
\n size = 600,\r\n state = false\r\n },\r\n\
|
|
\ --4: Tablet Token\r\n {\r\n pos = {-0.743,0.1,1.517},\r\
|
|
\n size = 600,\r\n state = false\r\n },\r\n\
|
|
\ --End of checkboxes\r\n },\r\n --Add counters that have a + and\
|
|
\ - button\r\n counter = {\r\n --[[\r\n pos = the position\
|
|
\ (pasted from the helper tool)\r\n size = height/width/font_size for\
|
|
\ counter\r\n value = default starting value for counter\r\n \
|
|
\ hideBG = if background of counter is hidden (true=hidden, false=not)\r\n \
|
|
\ ]]\r\n --Turns Taken\r\n {\r\n pos = {-0.880,0.1,0.737},\r\
|
|
\n size = 1500,\r\n value = 0,\r\n hideBG\
|
|
\ = true\r\n },\r\n --End of counters\r\n },\r\n --Add editable\
|
|
\ text boxes\r\n textbox = {\r\n --[[\r\n pos = the position\
|
|
\ (pasted from the helper tool)\r\n rows = how many lines of text\
|
|
\ you want for this box\r\n width = how wide the text box is\r\n\
|
|
\ font_size = size of text. This and \"rows\" effect overall height\r\
|
|
\n label = what is shown when there is no text. \"\" = nothing\r\n\
|
|
\ value = text entered into box. \"\" = nothing\r\n alignment\
|
|
\ = Number to indicate how you want text aligned\r\n (1=Automatic,\
|
|
\ 2=Left, 3=Center, 4=Right, 5=Justified)\r\n ]]\r\n --Aggressive\
|
|
\ Threats\r\n {\r\n pos = {0.640,0.1,-1.500},\r\n \
|
|
\ rows = 4,\r\n width = 3800,\r\n font_size\
|
|
\ = 450,\r\n label = \"Empty\",\r\n value = \"\
|
|
\",\r\n alignment = 2\r\n },\r\n --Lurking Threats\r\
|
|
\n {\r\n pos = {0.620,0.1,-1.000},\r\n rows\
|
|
\ = 4,\r\n width = 3800,\r\n font_size = 450,\r\
|
|
\n label = \"Empty\",\r\n value = \"\",\r\n \
|
|
\ alignment = 2\r\n },\r\n --Environmental Threats\r\n\
|
|
\ {\r\n pos = {0.600,0.1,-0.500},\r\n rows\
|
|
\ = 4,\r\n width = 3800,\r\n font_size = 450,\r\
|
|
\n label = \"Empty\",\r\n value = \"\",\r\n \
|
|
\ alignment = 2\r\n },\r\n --End of textboxes\r\n \
|
|
\ }\r\n}\r\n\r\n\r\n\r\n--Lua beyond this point, I recommend doing something\
|
|
\ more fun with your life\r\n\r\n\r\n\r\n--Save function\r\nfunction updateSave()\r\
|
|
\n saved_data = JSON.encode(ref_buttonData)\r\n if disableSave==true then\
|
|
\ saved_data=\"\" end\r\n self.script_state = saved_data\r\nend\r\n\r\n--Startup\
|
|
\ procedure\r\nfunction onload(saved_data)\r\n if disableSave==true then\
|
|
\ saved_data=\"\" end\r\n if saved_data ~= \"\" then\r\n local loaded_data\
|
|
\ = JSON.decode(saved_data)\r\n ref_buttonData = loaded_data\r\n else\r\
|
|
\n ref_buttonData = defaultButtonData\r\n end\r\n\r\n spawnedButtonCount\
|
|
\ = 0\r\n createCheckbox()\r\n createCounter()\r\n createTextbox()\r\
|
|
\nend\r\n\r\n\r\n\r\n--Click functions for buttons\r\n\r\n\r\n\r\n--Checks or\
|
|
\ unchecks the given box\r\nfunction click_checkbox(tableIndex, buttonIndex)\r\
|
|
\n if ref_buttonData.checkbox[tableIndex].state == true then\r\n ref_buttonData.checkbox[tableIndex].state\
|
|
\ = false\r\n self.editButton({index=buttonIndex, label=\"\"})\r\n \
|
|
\ else\r\n ref_buttonData.checkbox[tableIndex].state = true\r\n \
|
|
\ self.editButton({index=buttonIndex, label=string.char(10008)})\r\n end\r\
|
|
\n updateSave()\r\nend\r\n\r\n--Applies value to given counter display\r\n\
|
|
function click_counter(tableIndex, buttonIndex, amount)\r\n ref_buttonData.counter[tableIndex].value\
|
|
\ = ref_buttonData.counter[tableIndex].value + amount\r\n self.editButton({index=buttonIndex,\
|
|
\ label=ref_buttonData.counter[tableIndex].value})\r\n updateSave()\r\nend\r\
|
|
\n\r\n--Updates saved value for given text box\r\nfunction click_textbox(i,\
|
|
\ value, selected)\r\n if selected == false then\r\n ref_buttonData.textbox[i].value\
|
|
\ = value\r\n updateSave()\r\n end\r\nend\r\n\r\n--Dud function for\
|
|
\ if you have a background on a counter\r\nfunction click_none() end\r\n\r\n\
|
|
\r\n\r\n--Button creation\r\n\r\n\r\n\r\n--Makes checkboxes\r\nfunction createCheckbox()\r\
|
|
\n for i, data in ipairs(ref_buttonData.checkbox) do\r\n --Sets up\
|
|
\ reference function\r\n local buttonNumber = spawnedButtonCount\r\n\
|
|
\ local funcName = \"checkbox\"..i\r\n local func = function()\
|
|
\ click_checkbox(i, buttonNumber) end\r\n self.setVar(funcName, func)\r\
|
|
\n --Sets up label\r\n local label = \"\"\r\n if data.state==true\
|
|
\ then label=string.char(10008) end\r\n --Creates button and counts it\r\
|
|
\n self.createButton({\r\n label=label, click_function=funcName,\
|
|
\ function_owner=self,\r\n position=data.pos, height=data.size, width=data.size,\r\
|
|
\n font_size=data.size, scale=buttonScale,\r\n color=buttonColor,\
|
|
\ font_color=buttonFontColor\r\n })\r\n spawnedButtonCount = spawnedButtonCount\
|
|
\ + 1\r\n end\r\nend\r\n\r\n--Makes counters\r\nfunction createCounter()\r\
|
|
\n for i, data in ipairs(ref_buttonData.counter) do\r\n --Sets up\
|
|
\ display\r\n local displayNumber = spawnedButtonCount\r\n --Sets\
|
|
\ up label\r\n local label = data.value\r\n --Sets height/width\
|
|
\ for display\r\n local size = data.size\r\n if data.hideBG ==\
|
|
\ true then size = 0 end\r\n --Creates button and counts it\r\n \
|
|
\ self.createButton({\r\n label=label, click_function=\"click_none\"\
|
|
, function_owner=self,\r\n position=data.pos, height=size, width=size,\r\
|
|
\n font_size=data.size, scale=buttonScale,\r\n color=buttonColor,\
|
|
\ font_color=buttonFontColor\r\n })\r\n spawnedButtonCount = spawnedButtonCount\
|
|
\ + 1\r\n\r\n --Sets up add 1\r\n local funcName = \"counterAdd\"\
|
|
..i\r\n local func = function() click_counter(i, displayNumber, 1) end\r\
|
|
\n self.setVar(funcName, func)\r\n --Sets up label\r\n \
|
|
\ local label = \"+\"\r\n --Sets up position\r\n local offsetDistance\
|
|
\ = (data.size/2 + data.size/4) * (buttonScale[1] * 0.002)\r\n local\
|
|
\ pos = {data.pos[1] + offsetDistance, data.pos[2], data.pos[3]}\r\n \
|
|
\ --Sets up size\r\n local size = data.size / 2\r\n --Creates\
|
|
\ button and counts it\r\n self.createButton({\r\n label=label,\
|
|
\ click_function=funcName, function_owner=self,\r\n position=pos,\
|
|
\ height=size, width=size,\r\n font_size=size, scale=buttonScale,\r\
|
|
\n color=buttonColor, font_color=buttonFontColor\r\n })\r\n\
|
|
\ spawnedButtonCount = spawnedButtonCount + 1\r\n\r\n --Sets up\
|
|
\ subtract 1\r\n local funcName = \"counterSub\"..i\r\n local\
|
|
\ func = function() click_counter(i, displayNumber, -1) end\r\n self.setVar(funcName,\
|
|
\ func)\r\n --Sets up label\r\n local label = \"-\"\r\n \
|
|
\ --Set up position\r\n local pos = {data.pos[1] - offsetDistance, data.pos[2],\
|
|
\ data.pos[3]}\r\n --Creates button and counts it\r\n self.createButton({\r\
|
|
\n label=label, click_function=funcName, function_owner=self,\r\n\
|
|
\ position=pos, height=size, width=size,\r\n font_size=size,\
|
|
\ scale=buttonScale,\r\n color=buttonColor, font_color=buttonFontColor\r\
|
|
\n })\r\n spawnedButtonCount = spawnedButtonCount + 1\r\n end\r\
|
|
\nend\r\n\r\nfunction createTextbox()\r\n for i, data in ipairs(ref_buttonData.textbox)\
|
|
\ do\r\n --Sets up reference function\r\n local funcName = \"\
|
|
textbox\"..i\r\n local func = function(_,_,val,sel) click_textbox(i,val,sel)\
|
|
\ end\r\n self.setVar(funcName, func)\r\n\r\n self.createInput({\r\
|
|
\n input_function = funcName,\r\n function_owner = self,\r\
|
|
\n label = data.label,\r\n alignment = data.alignment,\r\
|
|
\n position = data.pos,\r\n scale = buttonScale,\r\
|
|
\n width = data.width,\r\n height = (data.font_size*data.rows)+24,\r\
|
|
\n font_size = data.font_size,\r\n color \
|
|
\ = buttonColor,\r\n font_color = buttonFontColor,\r\n \
|
|
\ value = data.value,\r\n })\r\n end\r\nend\r\n"
|
|
LuaScriptState: '{"checkbox":[{"pos":[-1.37,0.1,-0.158],"size":600,"state":false},{"pos":[-1.352,0.1,-0.031],"size":600,"state":false},{"pos":[-1.339,0.1,0.099],"size":600,"state":false},{"pos":[-1.331,0.1,0.234],"size":600,"state":false},{"pos":[-1.319,0.1,0.369],"size":600,"state":false},{"pos":[-1.268,0.1,1.158],"size":600,"state":false},{"pos":[-0.773,0.1,1.119],"size":600,"state":false},{"pos":[-1.26,0.1,1.287],"size":600,"state":false},{"pos":[-0.76,0.1,1.251],"size":600,"state":false},{"pos":[-1.247,0.1,1.42],"size":600,"state":false},{"pos":[-0.751,0.1,1.38],"size":600,"state":false},{"pos":[-1.239,0.1,1.549],"size":600,"state":false},{"pos":[-0.743,0.1,1.517],"size":600,"state":false}],"counter":[{"hideBG":true,"pos":[-0.88,0.1,0.737],"size":1500,"value":0}],"textbox":[{"alignment":2,"font_size":450,"label":"Empty","pos":[0.64,0.1,-1.5],"rows":4,"value":"","width":3800},{"alignment":2,"font_size":450,"label":"Empty","pos":[0.62,0.1,-1],"rows":4,"value":"","width":3800},{"alignment":2,"font_size":450,"label":"Empty","pos":[0.6,0.1,-0.5],"rows":4,"value":"","width":3800}]}'
|
|
MeasureMovement: false
|
|
Name: Custom_Token
|
|
Nickname: Jumanji Campaign Log 2
|
|
Snap: true
|
|
Sticky: true
|
|
Tooltip: true
|
|
Transform:
|
|
posX: 1.147618
|
|
posY: 1.571152
|
|
posZ: -29.7407913
|
|
rotX: 359.9201
|
|
rotY: 270.021973
|
|
rotZ: 0.0168410949
|
|
scaleX: 5.188961
|
|
scaleY: 1.0
|
|
scaleZ: 5.188961
|
|
Value: 0
|
|
XmlUI: ''
|
|
Sticky: true
|
|
Tooltip: true
|
|
Transform:
|
|
posX: 1.15
|
|
posY: 1.57
|
|
posZ: -29.74
|
|
rotX: 359.92
|
|
rotY: 270.02
|
|
rotZ: 0.02
|
|
scaleX: 5.19
|
|
scaleY: 1.0
|
|
scaleZ: 5.19
|
|
Value: 0
|
|
XmlUI: ''
|