Roll20 uses cookies to improve your experience on our site. Cookies enable you to enjoy certain features, social sharing functionality, and tailor message and display ads to your interests on our site and others. They also help us understand how our site is being used. By continuing to use our site, you consent to our use of cookies. Update your cookie preferences .
×
Create a free account

Displaying Loading Screen Type Messages

I saw this youtube video <a href="https://www.youtube.com/watch?v=MJSVE3gvNQs&amp;t=320s&amp;ab_channel=NickOlivo" rel="nofollow">https://www.youtube.com/watch?v=MJSVE3gvNQs&amp;t=320s&amp;ab_channel=NickOlivo</a> and wanted something like this for my session but I couldn't get it to work and I got no error message. I hope someone can help me
1601820926

Edited 1601820955
Nick O.
Forum Champion
Replied on the video. :)
I tried it now and nothing is shown in the chat but now I get an error message "SyntaxError: Unexpected string" I don't know if I typed it correctly so I added a screenshot and hope it helps&nbsp;
1601830106
The Aaron
Roll20 Production Team
API Scripter
If you could post the text of the code you're using (rather than an image), it would be easier for others to try and debug it with you. =D
on("ready",function(){&nbsp; &nbsp;&nbsp; &nbsp; &nbsp; var isItRunning; &nbsp; &nbsp; on("change:campaign:playerpageid",function(){ &nbsp; &nbsp; &nbsp; &nbsp; var currentPage = getObj("page",Campaign().get("playerpageid")); &nbsp; &nbsp; &nbsp; &nbsp; if (currentPage.get("name")=="breakScreen"){ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; var textBox; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; var token = findObjs({ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; name:"textLocation",log("Here"), &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; type:"graphic", &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; pageid:Campaign().get("playerpageid") &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (token[0] === undefined){ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sendChat("API","Could not locate a token named textLocation"); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; } &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; var textLocation = token[0]; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(!state.BreakScreen){ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; log("increate") &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; textBox = createObj("text", &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; { &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; text:"Hello World", &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; font_size:36, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; font_family:"Contrail One", &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; color:"rgb(255,255,255)", &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; layer:"objects", &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; pageid:Campaign().get("playerpageid"), &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; left:textLocation.get("left"), &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; top:textLocation.get("top") &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; state.BreakScreen = { &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; module:"Break Screen", &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; textID:textBox.get("id") &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; } &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; } &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; else{ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; textBox = getObj("text",state.BreakScreen.textID); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; } &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; var tables = findObjs({ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; type:"rollabletable", &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; name:"loadingMessages" &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (tables[0] === undefined){ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sendChat("API","Unable to locate a rollable table called loadingMessages"); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; } &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; var loadingMessagesTable = tables[0]; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; var messageList = findObjs({ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; type:"tableitem", &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; rollabletableid:loadingMessagesTable.get("id") &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; isItRunning = setInterval(function(){ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; var tableItem = messageList[(randomInteger(messageList.length)-1)]; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; textBox.set({ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; text:tableItem.get("name"), &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; left:textLocation.get("left"), &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; top:textLocation.get("top") &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; });&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; },3000); &nbsp; &nbsp; &nbsp; &nbsp; } &nbsp; &nbsp; &nbsp; &nbsp; else{ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; clearInterval(isItRunning); &nbsp; &nbsp; &nbsp; &nbsp; } &nbsp; &nbsp; }); &nbsp; &nbsp;&nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; on("chat:message",function(msg){ &nbsp; &nbsp; &nbsp; &nbsp; if(msg.type=="api" &amp;&amp; msg.content.indexOf("!clearBreakScreenText")==0){ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; textBox = getObj("text",state.BreakScreen.textID); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(textBox!==undefined){ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;textBox.remove(); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; } &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; state.BreakScreen = undefined; &nbsp; &nbsp; &nbsp; &nbsp; } &nbsp; &nbsp; }); });
1601835084

Edited 1601835094
GiGs
Pro
Sheet Author
API Scripter
Inside the var token, there's this line: name:"textLocation",log("Here"), Change that to name : "textLocation" ,
yes nick told me that i should add this "log" after the name:textlocation i do not know how to do that so i just wrote it after the name:textlocation&nbsp; this is the original one on("ready",function(){&nbsp; &nbsp;&nbsp; &nbsp; &nbsp; var isItRunning; &nbsp; &nbsp; on("change:campaign:playerpageid",function(){ &nbsp; &nbsp; &nbsp; &nbsp; var currentPage = getObj("page",Campaign().get("playerpageid")); &nbsp; &nbsp; &nbsp; &nbsp; if (currentPage.get("name")=="breakScreen"){ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; var textBox; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; var token = findObjs({ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; name:"textLocation", &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; type:"graphic", &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; pageid:Campaign().get("playerpageid") &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (token[0] === undefined){ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sendChat("API","Could not locate a token named textLocation"); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; } &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; var textLocation = token[0]; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(!state.BreakScreen){ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; log("increate") &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; textBox = createObj("text", &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; { &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; text:"Hello World", &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; font_size:36, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; font_family:"Contrail One", &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; color:"rgb(255,255,255)", &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; layer:"objects", &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; pageid:Campaign().get("playerpageid"), &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; left:textLocation.get("left"), &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; top:textLocation.get("top") &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; state.BreakScreen = { &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; module:"Break Screen", &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; textID:textBox.get("id") &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; } &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; } &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; else{ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; textBox = getObj("text",state.BreakScreen.textID); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; } &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; var tables = findObjs({ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; type:"rollabletable", &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; name:"loadingMessages" &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (tables[0] === undefined){ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sendChat("API","Unable to locate a rollable table called loadingMessages"); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; } &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; var loadingMessagesTable = tables[0]; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; var messageList = findObjs({ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; type:"tableitem", &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; rollabletableid:loadingMessagesTable.get("id") &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; isItRunning = setInterval(function(){ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; var tableItem = messageList[(randomInteger(messageList.length)-1)]; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; textBox.set({ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; text:tableItem.get("name"), &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; left:textLocation.get("left"), &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; top:textLocation.get("top") &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; });&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; },3000); &nbsp; &nbsp; &nbsp; &nbsp; } &nbsp; &nbsp; &nbsp; &nbsp; else{ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; clearInterval(isItRunning); &nbsp; &nbsp; &nbsp; &nbsp; } &nbsp; &nbsp; }); &nbsp; &nbsp;&nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; on("chat:message",function(msg){ &nbsp; &nbsp; &nbsp; &nbsp; if(msg.type=="api" &amp;&amp; msg.content.indexOf("!clearBreakScreenText")==0){ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; textBox = getObj("text",state.BreakScreen.textID); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(textBox!==undefined){ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;textBox.remove(); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; } &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; state.BreakScreen = undefined; &nbsp; &nbsp; &nbsp; &nbsp; } &nbsp; &nbsp; }); });
1601908907
The Aaron
Roll20 Production Team
API Scripter
Verify that the player ribbon is on the same page as the token named "textLocation".
so the player banner is on the break screen and the token "textLocation" is on the break screen but nothing happens (I use code from github again)
1601911420
The Aaron
Roll20 Production Team
API Scripter
With the API running, and while personally on the break page, try moving the player ribbon to another page, then move it back to the break page.
OMG you are the king it works now i feel stupid :(
1601911773
The Aaron
Roll20 Production Team
API Scripter
No worries, it's a very subtle bug.&nbsp; Basically, the script only activates when the ribbon is moved to the break page.&nbsp; If the ribbon has always started there, it will never activate the script.&nbsp; Probably the script needs a bit of startup logic that kicks of the functionality if the api script starts and the ribbon is already on the page.
yes but as it is now is enough for me thanks again to all who have helped :)