#placeholder-api
150650 messages · Page 90 of 151
can you do /papi parse me %server_countdown_HH:mm_23:00% %server_time_HH:mm% please
and send a screenshot of that output
hmm. that's a strange one. wonder if it actually really needs the date. in which case you can try something like this`
%server_countdown_dd/MM/yyyy HH:mm:ss_{server_time_dd/MM/yyyy} 23:00%
https://paste.helpch.at/tovakidife.sql
I get this error when trying to /papi reload after installing essentialsexpansion placeholder, does anyone know why?
can you execute /papi dump and send the generated link here please?
You're using an old version of EssentialsX. Either update EssentialsX or downgrade the Essentials expansion.
You sure it works for times? I have it working for dd/MM/yyyy.
Oh wait
It absolutely should. I've used it before. I'll switch to linux in a few minutes to start my test server and see if I can reproduce this.
It does need a date
hmm?
%server_countdown_dd/MM/yyyy HH:mm:ss_{server_time_dd/MM/yyyy} 23:00%
HH:mm:ss
23:00
no problem. xD
yup that fixed it
Is there any way to get tomorrow's server date?
not with just a simple placeholder. you'd need a placeholder inside placeholder inside placeholder which is not really possible.
You'll probably want to make a custom javascript for this instead.
Blegh, not that bothered. No worries, thanks
@me when placeholder in a placeholder in a placeholder is a thing
yeah... xD
don't even think PAPI3 will add that and that will only be launched next year
or so
but anyways
turns out I can be bothered lmao
Any reason update_interval: 5 seems to not work?
you need to add update: true to each item.
that you want to update
they don't automatically update.
Got it
ver sound = Java.type("org.bukkit.Sound.BLOCK_NOTE_BLOCK_BIT");
Try this @bold mesa
And that for loop isnt not valid, is it?
for (var i = 0; i < onlinePlayers.length; i++)
var player = onlinePlayers[i]
Hmm, try var sound = Java.type("org.bukkit.Sound").BLOCK_NOTE_BLOCK_BIT; and define it above the loop
and if that doesn't work, try this instead var sound = Java.type("org.bukkit.Sound").valueOf("BLOCK_NOTE_BLOCK_BIT");
remove that player definition at the top
and that's the only way to play the sound to everyone, loop trough all players and call Player#playerSound
im trying to create a health bar with progress placeholders
/papi parse me %progress_bar_{player_health_rounded}_c:&a■_p:&e■_r:&7■_l:5_m:100%
it used to work fine a few hours ago, but suddenly it will only parse "completed" rather than the bar itself
Hey what placeholder should I use so it shows if my server is online or offline
%pinger_isonline_<server/ip>:<port>%
I can't seem to find PlaceholderAPI_ver_DEV.jar anymore, is it now RC as shown in pins here?
Does anyone know why this happens?
https://paste.helpch.at/sakuyaroxa.makefile
Here's the code bit:
https://paste.helpch.at/pohupinece.js
Can you use /papi parse? @cloud salmon
Well
Hm?
how do i send image
cuz it works fine
it only doesn't work when a player disconnects
i'm guessing cuz i use the prefix in nametags as well as scoreboard
so i have to somehow find offline player
idk how to do that with javascript tho tbh
hmm, if they leave, the placeholder shouldnt be parsed at all I guess
not sure
but i get that error everytime someone leaves
only sometimes, not everytime
after updated to new papi my chat placeholders brokes
colors code are showing :/
how do I disable the fullbar option in papi progress?
How can I use this placeholder "%sound_ all_ <sound>-<volume>-<pitch>%"?
I already download "/papi ecloud download Sound" and reload my server. How can I use or check this placeholder with command /papi parse ? What is the format of this placeholder? What the format have sound in this placeholder?
So I have downloaded the "Data" community script along with a data example script and it doesn't seem to let me check data with %javascript_data_get,{player_name}.viewed%
%javascript_essentials_menu_glass% This however shows the number correctly
function viewCount() {
var views = Data.exists(dataLoc) ? Data.get(dataLoc) : 0;
views++;
Data.set(dataLoc, views);
Placeholder.saveData();
return views;
}
viewCount();```
This is the file
each script has it's own data
sounds like you're trying to use the data cross-script @warm plover
I just want to set a variable in game for it to be used in game
Yes so it all has to be done inside one script
I see
if you use the data community script then you have to use javascript_data_get,... javascript_data_set,...
And my script for the variable has to be in data.js too?
what script are you writing?
just to test it out
this is in a different file
I don't understand the purpose of writing a script, I thought you just wanted a varaible
you test it with get and set
/papi parse me %javascript_data_get,{player_name}.viewed% shows nothing
I thought I did, let me try again in case
/papi parse me %javascript_data_set,{player_name}.viewed,0%
Ah okay setting it did make it show up
So I don't even need a script for variables, data.js literally just does this for me
That's what it seems like anyway
correct
the Community Script Data just makes javascript data easier to use
and a bit more user friendly
Is there a way I can set a data placeholder to the default empty string?
Like this, but this doesn't do it /papi parse me %javascript_data_set,glassColor,%
function set(path, data) {
if(data === "")
Data.remove(path);
else
Data.set(path, data);
return "";
}
``` maybe
could've just added a remove
but
that felt easier
I don't get this error https://paste.helpch.at/epugaladew.sql
Didn't seem to work
ah, don't really have time to add remove to that script rn
Alright no worries
Ping me when you respond
Is there a way to assign a default value to a JS data?
what you mean with "js data"
var something = Data.get("key") || "default"; try this
I believe he's referring to the javascript expansion which has a data feature. And the answer is yes. By changing the code itself.
function get(path, def) {
return Data.exists(path) ? Data.get(path) : def;
}```
and you could even make the default value just be an argument as well. Similar to how deluxemenu's meta works
How does this work exactly? Apologies I'm not great at JS
if data exists ? return Data.get() : otherwise, return def
is a shorter if-else statement
Oh I see, and def is the default value?
its called an elvis operator or a ternary operator.
yeah. its a value you want to be default
elvis is different
you can set it to any string
is it?
So would I change def to "String"
oh. is it the one kotlin has?
I see
yes
return Data.exists(backgroundGlass) ? Data.get(backgroundGlass) : "GRAY_STAINED_GLASS_PANE";
}```
Would this be correct?
yeah. but you don't need the def parameter then
but careful
this will set the default value to GRAY_STAINED_GLASS_PANE For all your data placeholders
I thought that was the point of putting (backgroundGlass), that may be a problem
Hmm, guess that's not a huge deal really
But for anyone who downloads this (which I was planning on making it public) it could be
do u know why?
oop sorry
Well because BukkitPlayer represents an online player. And when a player leaves, well they're not online
I recommend you use OfflinePlayer instead of BukkitPlayer
what if they're not offline then?
is there a way to check with javascript if a player is null or not online?
i dont know exactly tbh
Where should the variable expansion problem go?
Elaborate a bit more
when updating papi, do I need to replace both the Jar file and the papi folder???
afaik only the .jar file
Only the jar file, yes
thought so, thanks
How can I use this placeholder "%sound_all <sound>-<volume>-<pitch>%"?
I already download "/papi ecloud download Sound" and reload my server. How can I use or check this placeholder with command /papi parse ? What is the format of this placeholder? What the format have sound in this placeholder?
same for me, did you fix it? im thinking on returning to the 2.11.1 version
Ask your plugin developer for an update
The relied on a part of the code that got removed, they should handle the coloring on their own
is it just me or
[15:32:51 ERROR]: [PlaceholderAPI] Failed to load class files of expansion.
java.util.concurrent.CompletionException: java.lang.NullPointerException: Cannot invoke "java.lang.Class.getClassLoader()" because "result" is null
at me.clip.placeholderapi.expansion.manager.LocalExpansionManager.lambda$findExpansionInFile$7(LocalExpansionManager.java:428) ~[PlaceholderAPI-2.11.2.jar:?]
at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768) ~[?:?]
at java.util.concurrent.CompletableFuture$AsyncSupply.exec(CompletableFuture.java:1760) ~[?:?]
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373) ~[?:?]
at java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182) ~[?:?]
at java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655) ~[?:?]
at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622) ~[?:?]
at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165) ~[?:?]
Caused by: java.lang.NullPointerException: Cannot invoke "java.lang.Class.getClassLoader()" because "result" is null
at org.bukkit.plugin.java.PluginClassLoader.loadClass0(PluginClassLoader.java:113) ~[purpur-api-1.19-R0.1-SNAPSHOT.jar:?]
at org.bukkit.plugin.java.JavaPluginLoader.getClassByName(JavaPluginLoader.java:235) ~[purpur-api-1.19-R0.1-SNAPSHOT.jar:?]
at org.bukkit.plugin.java.PluginClassLoader.loadClass0(PluginClassLoader.java:128) ~[purpur-api-1.19-R0.1-SNAPSHOT.jar:?]
at org.bukkit.plugin.java.PluginClassLoader.loadClass(PluginClassLoader.java:105) ~[purpur-api-1.19-R0.1-SNAPSHOT.jar:?]
at java.lang.ClassLoader.loadClass(ClassLoader.java:574) ~[?:?]
at java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[?:?]
at me.clip.placeholderapi.util.FileUtil.findClass(FileUtil.java:62) ~[PlaceholderAPI-2.11.2.jar:?]
at me.clip.placeholderapi.expansion.manager.LocalExpansionManager.lambda$findExpansionInFile$7(LocalExpansionManager.java:405) ~[PlaceholderAPI-2.11.2.jar:?]
... 7 more
everytime i restart my server
the papi ecloud download just goes poof
java.util.concurrent.CompletionException: java.lang.NoClassDefFoundError: net/ess3/api/IEssentials
at java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:320) ~[?:?]
at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1770) ~[?:?]
at java.lang.Thread.run(Thread.java:833) ~[?:?]
Caused by: java.lang.NoClassDefFoundError: net/ess3/api/IEssentials
at java.lang.Class.getDeclaredMethods0(Native Method) ~[?:?]
at java.lang.Class.privateGetDeclaredMethods(Class.java:3402) ~[?:?]
at java.lang.Class.getDeclaredMethods(Class.java:2504) ~[?:?]
at me.clip.placeholderapi.expansion.manager.LocalExpansionManager.lambda$findExpansionInFile$7(LocalExpansionManager.java:413) ~[PlaceholderAPI-2.11.2.jar:?]
at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768) ~[?:?]
... 1 more
Caused by: java.lang.ClassNotFoundException: net.ess3.api.IEssentials
at java.net.URLClassLoader.findClass(URLClassLoader.java:445) ~[?:?]
at java.lang.ClassLoader.loadClass(ClassLoader.java:587) ~[?:?]
at java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[?:?]
at java.lang.Class.getDeclaredMethods0(Native Method) ~[?:?]
at java.lang.Class.privateGetDeclaredMethods(Class.java:3402) ~[?:?]
at java.lang.Class.getDeclaredMethods(Class.java:2504) ~[?:?]
at me.clip.placeholderapi.expansion.manager.LocalExpansionManager.lambda$findExpansionInFile$7(LocalExpansionManager.java:413) ~[PlaceholderAPI-2.11.2.jar:?]
at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768) ~[?:?]
... 1 more```
Actually I have something similar, every time I reload PAPI, this happens.
Mine stopped working completely. Worked after I downgraded back to 2.11.1
Weirdly enough, this just happens in one backend server, in the other it does work fine. Same version of PAPI.
Could it be an issue regarding compatibility with other plugins?
Can we have some logs to see what was happening?
Either your essentials or essentials expansion is outdated most likely
I will try updating Essentials, because the expansion was recently downloaded.
Awesome
Try restarting with no expansions installed, there might be one in there doing something funky
05.07 12:01:54 [Server] INFO Placeholder expansion registration initializing...
05.07 12:01:54 [Server] INFO Fetching available expansion information...
05.07 12:01:58 [Server] ERROR Failed to load class files of expansion.
05.07 12:01:58 [Server] INFO java.util.concurrent.CompletionException: java.lang.NoClassDefFoundError: net/ess3/api/IEssentials
05.07 12:01:58 [Server] INFO at java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:315) ~[?:?]
05.07 12:01:58 [Server] INFO at java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:320) ~[?:?]
05.07 12:01:58 [Server] INFO at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1770) ~[?:?]
05.07 12:01:58 [Server] INFO at java.util.concurrent.CompletableFuture$AsyncSupply.exec(CompletableFuture.java:1760) ~[?:?]
05.07 12:01:58 [Server] INFO at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373) ~[?:?]
05.07 12:01:58 [Server] INFO at java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182) ~[?:?]
05.07 12:01:58 [Server] INFO at java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655) ~[?:?]
05.07 12:01:58 [Server] INFO at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622) ~[?:?]
05.07 12:01:58 [Server] INFO at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165) ~[?:?]
05.07 12:01:58 [Server] INFO Caused by: java.lang.NoClassDefFoundError: net/ess3/api/IEssentials
05.07 12:01:58 [Server] INFO at java.lang.Class.getDeclaredMethods0(Native Method) ~[?:?]
05.07 12:01:58 [Server] INFO at java.lang.Class.privateGetDeclaredMethods(Class.java:3402) ~[?:?]
05.07 12:01:58 [Server] INFO at java.lang.Class.getDeclaredMethods(Class.java:2504) ~[?:?]
05.07 12:01:58 [Server] INFO at me.clip.placeholderapi.expansion.manager.LocalExpansionManager.lambda$findExpansionInFile$7(LocalExpansionManager.java:413) ~[PlaceholderAPI-2.11.2.jar:?]
05.07 12:01:58 [Server] INFO at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768) ~[?:?]
05.07 12:01:58 [Server] INFO ... 6 more
05.07 12:01:58 [Server] INFO Caused by: java.lang.ClassNotFoundException: net.ess3.api.IEssentials
05.07 12:01:58 [Server] INFO at java.net.URLClassLoader.findClass(URLClassLoader.java:445) ~[?:?]
05.07 12:01:58 [Server] INFO at java.lang.ClassLoader.loadClass(ClassLoader.java:587) ~[?:?]
05.07 12:01:58 [Server] INFO at java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[?:?]
05.07 12:01:58 [Server] INFO at java.lang.Class.getDeclaredMethods0(Native Method) ~[?:?]
05.07 12:01:58 [Server] INFO at java.lang.Class.privateGetDeclaredMethods(Class.java:3402) ~[?:?]
05.07 12:01:58 [Server] INFO at java.lang.Class.getDeclaredMethods(Class.java:2504) ~[?:?]
05.07 12:01:58 [Server] INFO at me.clip.placeholderapi.expansion.manager.LocalExpansionManager.lambda$findExpansionInFile$7(LocalExpansionManager.java:413) ~[PlaceholderAPI-2.11.2.jar:?]
05.07 12:01:58 [Server] INFO at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768) ~[?:?]
05.07 12:01:58 [Server] INFO ... 6 more
Error fixed, thank you.
So yeah you've got the same issue as @wanton burrow, just update your essentials and essentials expansion
Don't even have essentials installed tbh
ah then remove the essentials expansion
delete it from /plugins/placeholderapi/expansions/
Hmm. why didn't Barry pick this up?
hmm. no its not.
I have another problem though
When I use a Scoreboard, the PAPI placeholder extension for LuckPerms does not detect color codes being used on the ranks. This is not a problem from the Scoreboard plugin itself, since there are other color codes put in other places that work perfectly.
LuckPerms is updated, the expansion is updated. In the other subserver it works as intented. I dunno what's happening. .-.
Fairly certain LuckPerms returns the unformatted color codes
so if your rank prefix is &cRed for example it will be returned as exactly that.
actually that might only happen for hex colors.
Problem is, in the other subserver I have exactly the same settings, but it does return the color codes as intended.
Do I try using Hex color codes?
Because if I enter /papi parse EverCR %luckperms_prefix% on both sub servers, one does retrieve the right color values, but in the other just returns the codes... And both servers have the same version of PAPI and LuckPerms .-.
Nvm, I just saw what was the problem. Recent update 2.11.2 has the color coding format removed. So I just downgraded to 2.11.1 and it works as intented.
yeah. I mean as I've mentioned before. Luckperms never inteded to parse colors in placeholders
they intentionally don't parse it themselves. To let other plugins where placeholders are used parse it. Like scoreboards.
Regardless, it works now. So I don't have complains.
Hey, is there any placeholder to display how many blocks all the members in the server have mined?
I get Unknown statistic'player error
SS: https://imgur.com/a/vtZGVvC
papi dump: https://paste.helpch.at/otulafopeq
%statistic_player_kills% & %statistic_deaths% doesnt work
/papi parse me %statistic_player_kills% says unknown statistic as well?
@midnight egret
Please help me Which placeholder shows Worlds?
%math_0_{bungee_BwHUB-1}+{bungee_BwHUB-2}+{bungee_Bw1v1-1}+{bungee_Bw1v1-2}+{bungee_Armed-1}+{bungee_Armed-2}+{bungee_BwDoubles-1}+{bungee_BwDoubles-2}+{bungee_BwPractice-1}+{bungee_BwPractice-2}+{bungee_BwRank3v3-Champ-1}+{bungee_BwRank3v3-Champ-2}+{bungee_BwRank3v3-Cont-1}+{bungee_BwRank3v3-Cont-2}+{bungee_BwRank3v3-Open-1}+{bungee_BwRank3v3-Open-2}+{bungee_BwRank4v4-Champ-1}+{bungee_BwRank4v4-Champ-2}+{bungee_BwRank4v4-Cont-1}+{bungee_BwRank4v4-Cont-2}+{bungee_BwRank4v4-Open-1}+{bungee_BwRank4v4-Open-2}+{bungee_BwSolo-1}+{bungee_BwSolo-2}+{bungee_BwSquad-1}+{bungee_BwSquad-2}+{bungee_BwTrio-1}+{bungee_BwTrio-2}%
Hey, why this don't work?
Hulooo?
can you at least surround it with `` to escape formatting? 😂
that's a lot of servers
i have it
eh xD
well, in one placeholder
i think is a limit of hd
xD
👍
delete essentials expansion
Which one?
plugins/placeholderapi/expansions/
then you can redownload after if needed
also, I recommend stopping the server, deleting, then starting the server
guy in #general-plugins said his server expansion came back so 🤷♂️
I need some help with the changeoutput and scoreboard api
for some reason this isnt working
%changeoutput_equals_{objective_entryposhigh_coins_1}_green_&\uE002 Green Guardians_%
what does /papi parse me %objective_entryposhigh_coins_1% return
and what isnt working exactly
maybe they're using the updated version with the new format? xD idk just saying
it just replies with %objective_entryposhigh_coins_1%
@mint fable Unknown expansion.
it doesnt detect it
@mint fable Unknown expansion.
smh
its scoreboardobjective or whatever
with an s||mh||
l3thalbunny
ive already downloaded it
🥴
downloaded it
still isnt working 
does the coins objective exist
case sensitive
yea it does
wait
does /papi parse me %objective_score_coins% return a value?
yea
wait you downloaded from spigot?
ye
not the commands?
i did both
where did you put the one from spigot
the plugins folder
you can delete that
I was just showing Kaliber the page
the commands downloaded what you needed
oh okay
and it works, but entryposhigh seems to not be
I belive you need {}
around the coins and the #
and I believe that's my doing, to support underscores :L
so you're gonna have to use javascript instead of changeoutput
since you can't nest the {} like that
%changeoutput_equals_{objective_entryposhigh_{coins}_{1}}_green_&\uE002 Green Guardians_%
yeah that wont work
yeah that won't work
idk
what do u want me to use
I just did it for a guy that wanted it basically
maybe
I hate using underscores in placeholders
pita
in checkitem I use , to separate instead and just allow people to \,
_ is so common
can someone write this better for me since i genuinely dont know what u guys r saying
before I do
do u know how to use the javascript expansion
/papi parse me %objective_entryposhigh_{coins}_{1}% works right?
var placeholder = "%objective_entryposhigh_{coins}_{1}%"
var out = ""
if( placeholder === "green" )
out = "&\uE002 Green Guardians"
out
it replies with green
@stoic garnet
i do not
and use this script
did you put extra %% around it?
nah.
hello wanted to ask if %vault_rank% would work on Deluxehub 3 Scoreboard
that doesnt work either
ampersand is E0026
§2
nah. just google E002. its a symbol. not ampersand and not section symbol
no idea what its called
.
as long as DHub 3 supports PlaceholderAPI
its up to each plugin to add support for PlaceholderAPI
ok ty
I don't understand though
that is the unicode code for this: https://i.imgur.com/AekPd9r.png
is that just a symbol he's wanting to use?
I assume so
ah
cause it came out E002
or like an icon
yeah
since papi doesn't translate those
its up to the plugin to translate those I think
or maybe the file encoding. idk
it's a square i thought, where did you see that symbol?
ya, I just figured his resource pack would replace it ig
what did you google for it
I'm on unicodelookup and put E002 as the hex and just got a square
\uE002
and what is the placeholder for ping?
but replaced by certain fonts, or in this case, resource packs/translations
%player_ping% if you have the expansion
dw i got it
what did you end up doing
var out = ""
if( placeholder === "red" )
out = "§r §cRed Rabbits"
if( placeholder === "orange" )
out = "§r §6Orange Ocelots"
if( placeholder === "yellow" )
out = "§r §eYellow Yaks"
if( placeholder === "lime" )
out = "§r §aLime Llamas"
if( placeholder === "green" )
out = "§r §2Green Guardians"
if( placeholder === "cyan" )
out = "§r §3Cyan Creepers"
if( placeholder === "aqua" )
out = "§r §bAqua Axolotls"
if( placeholder === "blue" )
out = "§r §9Blue Bats"```
nice
tbh
var placeholder = "%objective_entryposhigh_{coins}_{1}%"
function changePlaceholder(){
if( placeholder === "red" )
return "§r §cRed Rabbits"
if( placeholder === "orange" )
return "§r §6Orange Ocelots"
if( placeholder === "yellow" )
return "§r §eYellow Yaks"
if( placeholder === "lime" )
return "§r §aLime Llamas"
if( placeholder === "green" )
return "§r §2Green Guardians"
if( placeholder === "cyan" )
return "§r §3Cyan Creepers"
if( placeholder === "aqua" )
return "§r §bAqua Axolotls"
if( placeholder === "blue" )
return "§r §9Blue Bats"
}
changePlaceholder()
that should make it ever so slightly more efficient since it doesn't have to go through every if statement
not that it really matters
okay i ran into another problem
so basically what im using this for is a cool sidebar and for some reason instead of only making 1 part the color thing it makes it all the color
i wish i could send a ss
but it doesnt let me
@mint fable do you know how to fix that
?imgur
use white
f
there we go
noice
lmao
but what i want now is
i want it to show what team is infront of you in coins and the one behind
let me get a ss
so #1, and +1, self, and -1?
yes
var pos = parseInt(args[0])
var placeholder = PlaceholderAPI.static.setPlaceholders(BukkitPlayer, "%"+"objective_entryposhigh_{coins}_{"+pos+"}%")
function changePlaceholder(){
if( placeholder === "red" )
return "§f §cRed Rabbits"
if( placeholder === "orange" )
return "§f §6Orange Ocelots"
if( placeholder === "yellow" )
return "§f §eYellow Yaks"
if( placeholder === "lime" )
return "§f §aLime Llamas"
if( placeholder === "green" )
return "§f §2Green Guardians"
if( placeholder === "cyan" )
return "§f §3Cyan Creepers"
if( placeholder === "aqua" )
return "§f §bAqua Axolotls"
if( placeholder === "blue" )
return "§f §9Blue Bats"
}
changePlaceholder()
we are going to adapt this
is that the java script
so now it will take an argument
should i put that in the script
wait
also if u can
now do it
change the §r to §f
example
%javascript_example_<position>%
that's how we use it now
now... doing +-1 is gonna be tricky
sounds like a lot of placeholders that are going to be nested
so prob gotta use js
I can try working on a script for you in a little bit if you want, might be a little complicated
im gonna add this onto the sidebar
wait
@mint fable but the positions change depending on what place you are
so if youre 6th itll show 5th
that's why I'm saying plus and minus 1 will be tricky
to show 5th and 7th if you're in 6th
Any idea what this error is? https://keig.tk/fHUqcGeAUV.txt
?paste
try deleting your expansions, restarting, then re-installing them?
not sure which one it is or if there is more to the error or not
what if you did all caps
%statistic_PLAYER_KILLS%
ok i will try
that looks scary cant you switch?
yes
ok thanks
didn't want to redo it all, they wrote the if statements
i'll probably edit the same script and send it back later
for the +-1
unless you wanna do it 😉 @magic rock
how long is later
sorry im kinda in a rush so
alright
you can try #992627660146626601 or #992627658229809162 if you want, but idk how much faster that'd be
you can also try making the javascript but I think you said you don't know it
i dont lmao im stupid as hell
alright
@mint fable in the meantime I wanna know how to use team prefixes/team suffixes
with placeholders
since last time i did they just didnt work
@mint fable Unknown expansion.
Still need help
do you know how to set a team for this %team_prefix%
it's vanilla teams
I think you'd need a custom plugin
Are there any difference between %statistic_hours_played% and %statistic_time_played:hours%?
yea

so do i do %team_prefix_<team_name>%
I couldn't understand
no difference
thanks
ah, it's only for your current team
how do i change that
or is there no way
I don't think there's a way
sadge
do you use the prefixes elsewhere?
wdym
i use the suffix as a timer
could you store it to a custom objective instead?
i could try
One more question
when I try papi parse MetuMortis %statistic_hours_played% from console it logs blank string. Does this mean player must be in the game to use this placeholder
i should think about using vanilla objectives to store data more often
yes
they gotta be online
thanks
@mint fable how do i make a timer with placeholder api
mb
alr, thanks
Oops, sorry
can someone help me with this?
is this correct way of detecting if at least 1 requirement is true?
view_requirement:
minimum_requirements: 1
requirements:
tier_1: # This requirement will check if they have the rank, and if they do it will show the has_vip item instead.
type: string equals ignorecase
input: '%custom_placeholder%'
output: '1'
perm_1:
type: "has permission"
permission: floor.staff
I tried this and it only check the permission one for some reason, if the permission is false it blocks the view
oh my god i forgot
im sorry
can anyone please help me
can anyone help me ive been waiting for someone for 3 hours now
You're asking for a very customized project to be done
It's not just basic plugin or placeholder help
I am currently busy, if I have free time, I will make it. But until then your best bet is #992627658229809162 or #992627660146626601
alright i guess
If you wanted "help" then you would try and learn some javascript or at least explain what you want done so people CAN help you
cj is a busy lad
I'm not going to lie, most of my javascript just comes from me googling "xyz javascript"
sorry im just not really patient
?help
well does anyone know how to use the teams placeholder api
just state what you want to do
if people can help, they will
but they won't know if they can help until you fully lay it out for them
im trying to make a timer on my sidebar that i made with a plugin called "TAB" and the minigame that i made was made in datapacks therefore its kinda hard to transfer stuff like team suffixes and team prefixes and all that stuff so i was wondering if placeholder could help since it probably has something
Is there a way to have a leaderboard with top ingame moneymaker of the week, that auto resets. SImilar to how topvoter of the month works?
how do i import placeholder api into my plugin via POM
@stoic garnet looking at the scoreboardobjectives extension, it doesn't look like it's possible to do what you want
oh
There is no way to tell what position a certain entry is on the leaderboard
Is there a maximum number of teams?
it would then be more do-able
8
always 8 or no
always 8
How do you know which team you're on?
%team_name%?
I presume that would work, ye?
I started work, will lyk when I finish prob later tonight
i think it would
alright ty
also just dm me the script when it’s done since I’ll probably be asleep when it’s ready
Morning, so i was using CheckItem-Expansion yesterday and found an issue with nbtstrings
Im using 1.19, but this morning i found a solution and just wanted to ask if it could be updated. All that needs to happen is the dependencies in the pom need updating
Like below and this seems to fix the issue i was having with nbt not working```
<artifactId>spigot-api</artifactId>
<version>1.19-R0.1-SNAPSHOT</version>
<artifactId>placeholderapi</artifactId>
<version>2.11.2</version>
<artifactId>item-nbt-api</artifactId>
<version>2.10.0</version>```
If it could be updated officially that would be amazing
It definitely does, 2.9.2 works til 1.18 only. Maybe make a PR
java.lang.NullPointerException: Cannot read field "left" because "r" is null
at java.util.TreeMap.rotateLeft(TreeMap.java:2543) ~[?:?]
at java.util.TreeMap.fixAfterInsertion(TreeMap.java:2610) ~[?:?]
at java.util.TreeMap.addEntry(TreeMap.java:770) ~[?:?]
at java.util.TreeMap.put(TreeMap.java:828) ~[?:?]
at java.util.TreeMap.put(TreeMap.java:534) ~[?:?]
at com.extendedclip.papi.expansion.vault.VaultEcoHook.setBalTop(VaultEcoHook.java:110) ~[?:?]
at com.extendedclip.papi.expansion.vault.BalTopTask.run(BalTopTask.java:56) ~[?:?]
at org.bukkit.craftbukkit.v1_18_R2.scheduler.CraftTask.run(CraftTask.java:101) ~[pufferfish-1.18.2.jar:git-Pufferfish-72]
at org.bukkit.craftbukkit.v1_18_R2.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:57) ~[pufferfish-1.18.2.jar:git-Pufferfish-72]
at com.destroystokyo.paper.ServerSchedulerReportingWrapper.run(ServerSchedulerReportingWrapper.java:22) ~[pufferfish-1.18.2.jar:git-Pufferfish-72]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[?:?]
at java.lang.Thread.run(Thread.java:833) ~[?:?]```
What's this?
why every time that i try to dowload Javascript extension my papi just stop woking
[15:27:57] [Client thread/INFO]: [CHAT] An internal error occurred while attempting to perform this command
[15:28:05] [Client thread/INFO]: [CHAT] PlaceholderAPI configuration reloaded!
im using the command /papi ecloud dowload Javascript and then /papi reload
thanks fyi
No probs buddy
@stoic garnet yo
yo
lot more complicated than originally thought
but what if you're 1st/2nd place
what do the other lines show
lemme check 1 sec
1. 1st place
2. One above you
3. You
4. One below you
when your in first it shows the 3 teams behind u
If first
1. 1st place
2. 2nd place
3. 3rd place
4. 4th place
yea
same thing for 2nd?
so uh
if your 8th/7th
5. 5th place
6. 6th place
7. 7th place
8. 8th place
what is this
you want it to show ALL teams?
I thought you wanted first place, one above you, you, one below you
nonono
do you want 8 lines?
thats if your 8th or 7th
because you just did 5 6 7 8
wait
it should show like this
if you're 8th though, do you want to show 2 people above you instead of 1 above/below?
yea
aight
%javascript_scoreboard_name,#% to get the translated name of the team in # position
(not sure if you'll need it though)
%javascript_scoreboard_line,#% to get the line
so I did 4 lines: 1 2 3 4
this might end up being laggy fyi
it is javascript afterall
vs an actual java plugin
so do i change the original name of the script from example to scoreboard_name
and it runs the engine every time it's called
scoreboard
oh
name and line are "methods"
it isn't actually entirely setup yet, gotta make some changes
only 1 script
I thought you were just replacing what you had
i had to reset my server yesterday, what expansions do i download again?
this isnt working for some reason
/papi parse me %javascript_scoreboard%
%javascript_scoreboard_name,#% to get the translated name of the team in # position
%javascript_scoreboard_line,#% to get the line
so your scoreboard should be
%javascript_scoreboard_lines,1%
%javascript_scoreboard_lines,2%
%javascript_scoreboard_lines,3%
%javascript_scoreboard_lines,4%
Hi. I am currently having trouble with the vaults placeholders. I have added the vaults placeholder to my current scoreboard plugin, but all it is doing is the showing the placeholder in the scoreboard as %vault_eco_formatted%. I have installed the placeholder and reloaded placeholderapi. Any reason why it is not loaded or anyway to fix it?
does %javascript_scoreboard_name,1% do anything
nope
send your javascripts config
also it's lines not line ig
it doesnt let me send a file
?paste
shouldn't be too big
# Version: 2.11.2
# Created by: extended_clip
# Contributors: https://github.com/PlaceholderAPI/PlaceholderAPI/graphs/contributors
# Issues: https://github.com/PlaceholderAPI/PlaceholderAPI/issues
# Expansions: https://api.extendedclip.com/all/
# Wiki: https://github.com/PlaceholderAPI/PlaceholderAPI/wiki
# Discord: https://helpch.at/discord
# No placeholders are provided with this plugin by default.
# Download placeholders: /papi ecloud
check_updates: true
cloud_enabled: true
cloud_sorting: name
cloud_allow_unverified_expansions: false
boolean:
'true': 'yes'
'false': 'no'
date_format: MM/dd/yy HH:mm:ss
debug: false
expansions:
javascript:
debug: false
github_script_downloads: false
argument_split: ','
use_quick_js: false```
that's the papi config
oh
I need the javascript.yml or whatever
# This is the main configuration file for the Javascript Expansion.
#
# You will define your javascript placeholders in this file.
#
# Javascript files must be located in the:
# /plugins/placeholderapi/javascripts/ folder
#
# A detailed guide on how to create your own javascript placeholders
# can be found here:
# https://github.com/PlaceholderAPI-Expansions/Javascript-Expansion/wiki
#
# Your javascript placeholders will be identified by: %javascript_<identifier>%
#
# Configuration format:
#
# <identifier>:
# file: <name of file>.<file extension>
#
# Example:
#
# 'my_placeholder':
# file: 'my_placeholder.js'
example:
file: example.js
it's still named example
i change it from example.js to scoreboard.js right
whatever your file is named, keep it that way
if it's still named example.js keep it that way
but replace the example above it to scoreboard
honestly, it doesn't really matter
it's just for organization purposes if you need more javascripts later
really you can use %javascript_example_lines,1%
🤷♂️
# This is the main configuration file for the Javascript Expansion.
#
# You will define your javascript placeholders in this file.
#
# Javascript files must be located in the:
# /plugins/placeholderapi/javascripts/ folder
#
# A detailed guide on how to create your own javascript placeholders
# can be found here:
# https://github.com/PlaceholderAPI-Expansions/Javascript-Expansion/wiki
#
# Your javascript placeholders will be identified by: %javascript_<identifier>%
#
# Configuration format:
#
# <identifier>:
# file: <name of file>.<file extension>
#
# Example:
#
# 'my_placeholder':
# file: 'my_placeholder.js'
example:
file: scoreboard.js
thats good right
is your script saved as scoreboard.js?
its named scoreboard so yea
now it says
script error
but it only does that when the 2nd to last line example is changed to scoreboard
huh?
okay i fixed it
but it still replies with blank
/papi parse me %javascript_scoreboard_lines,1% right??
well its just sending blank so idk what to do
what if you do %javascript_scoreboard_name,1%
same thing
%objective_entryposhigh_{coins}_{1}%
same thing
same thing
same thing
what about a restart
alright 1 sec
and also, send your javascripts.yml again
and a picture of your Placeholderapi/javascripts folder
?imgur
# This is the main configuration file for the Javascript Expansion.
#
# You will define your javascript placeholders in this file.
#
# Javascript files must be located in the:
# /plugins/placeholderapi/javascripts/ folder
#
# A detailed guide on how to create your own javascript placeholders
# can be found here:
# https://github.com/PlaceholderAPI-Expansions/Javascript-Expansion/wiki
#
# Your javascript placeholders will be identified by: %javascript_<identifier>%
#
# Configuration format:
#
# <identifier>:
# file: <name of file>.<file extension>
#
# Example:
#
# 'my_placeholder':
# file: 'my_placeholder.js'
example:
file: scoreboard.js
it's still
uh
example
example is the name
scoreboard.js is the file
all you need is
scoreboard:
file: scoreboard.js
when i do that it says Script error (check console)
?startuplog
same thing
fully?
all 4 lines?
if so then it's just time to test when you're at every position 1-8 in the scoreboard
yea
but theres 1 more thing i want to do
which shouldnt be that hard
i want it to show on the side of team name
the placement
and their coins
so like if your in 3rd with 8 coins
- Orange Ocelots 8
I don’t know if that’s possible because I think the number on the right decides which order you see it
But you could just put the value itself next to the team name, not as the value way on the right
hello guys! Who know how to fix this? https://paste.helpch.at/vurinicinu.md
(PAPI version: 2.11.2)
JS expansion:
2. Javascript clip Y 2.1.0
Hi, is this support for ServerTime PAPI expansion?
what do ya need?
?imgur
So, I was sent here from the DiscordSRV support server because I need help with a date placeholder. I downloaded PAPI and ServerTime expansion and did the %servertime_<SimpleDateFormat>% placeholder. I need help making my server online and offline messages have a timestamp like this: <t:1657146564:R>. When I added %servertime_<SimpleDateFormat>% and started and shut down my server this is what my bot messaged. (Attached to this message is the bot's discord message (for start and stop) and the DiscordSRV config message (for start and stop).
https://cdn.austinispog.tk/Opera_Snapshot_2022-07-06_153304_discord.com.png <-- Discord messages
https://cdn.austinispog.tk/Opera_Snapshot_2022-07-06_153304_discord.com.png <-- DiscordSRV config
I dont use that lol, I use my custom image uploader
that's fine
Java version: 17
kind of odd, but what happens if you put an actual SimpleDateFormat?
wdym?
also I accidently did the wrong messages for the second screenshot
here are the messages:
The server is online. Started error whilst parsing the date
The server is offline. Stopped error whilst parsing the date```
from the bot
so, you'll probably want a custom js placeholder on top of servertime
idk how to do that
ok
try putting %servertime_MM/dd/yyyy HH:mm%
No idea how discord works with the whole 7 minutes ago thingy FYI @austere hawk
I mis-spoke here
its a timestamp
but as long as you know how you integrate that part into discord then we're good
7/6/2022 5:39 PM CST
https://time.austinispog.tk (select Relative time)
ah
what is that
that is what makes this
the number
The server is online. Started <t:1657147146:R>
The server is offline. Stopped <t:1657147146:R>
idk
I think like it tells Discord when the time was or smth
you didn't make the converter?
nah
I just hooked it up to my custom domain so I don't have to remember another url lol
@mint fable
we are getting somewhere
Austin's Assistant
BOT
— Today at 3:39 PM
The server is now online. Started 07/06/2022 15:39
Now I need it to look like this lol
send your placeholderapi config
type /papi ecloud download server /papi reload
then send the config
ooh actually
sorry
I found localtime
download that and try this
ok
ok
Placeholders:
%localtime_time%
%localtime_time_<SimpleDateFormat>%
%localtime_timezone_<TimeZoneID>%
%localtime_timezone_<TimeZoneID>,<SimpleDateFormat>%
which placeholder do I put?
lol
download that then follow this example to make a blank script https://github.com/PlaceholderAPI/Javascript-Expansion/wiki/Your-First-Script
do I delete the other expains?
I'll send you it soon
use_quick_js: true helped, nvm
lmao
ok I reloaded and added JS
where?
in the expansion config?
Why I everytime must reload papi, if I restart server?
PlaceholderAPI/config.yml
contains everything what u need
ok
pok
so tell the server that the thing you added/changed is new and to listen to it
y
doesn't work
what doesn't work
To test it, run /papi parse me %javascript_hello_world% (doesn't work in console)
And ta-da! example
that
it shows up as blank
you reload, ye?
give it a nice /papi reload and try again real quick
Also, you can rename it all to whatever you want now, I suggest unixtime or something
yeah I did
unixtime:
file: unixtime.js```
and save this as unixtime.js
(Date.now()/1000).toFixed(0)+""
/
home
/
container
/
plugins
/
PlaceholderAPI
/
javascripts
/
unixtime.js
in that file?
yes
/papi parse me %javascript_unixtime%
ok ty
It responded with 1657149515
ig add the extra stuff in to the script too
why not
if it's only for discord
"<t:"+(Date.now()/1000).toFixed(0)+":f>"
or whichever format you want
or add it to discordsrv config
🤷♂️
<t:1657149515:f>
<t:"+(Date.now()/1000).toFixed(0)+":f>
?codeblocks
or if you surround with `` it escape formatting too _like_this
DiscordChatChannelServerShutdownMessage: "The server is now **offline**. Stopped <t:"+(Date.now()/1000).toFixed(0)+":f>"
``` like this?
no no
your script
that's your script
ohhhh lmfao
ye
Did you put the right placeholder
Do you know which player it parses placeholders for?
wdym?
in papi, placeholders get parsed for a specific player
so I'm not sure how discordsrv manages that with these messages
Just to make sure it's still working type /papi parse --null %javascript_unixtime%
if that works then we might have to ask discordsrv
@austere hawk 
can you elaborate
can we make it so a placeholder resets every 7 days? eg: for %eco_balance% etc
using placeholder api, or is it inbuilt into what ever plugin im using?
PlaceholderAPI only acts as an API to transfer data between plugins
It doesn't cache and it doesn't actually provide any data itself
So %eco_balance%, you'd have to have it so that your economy plugin resets balances every 7 days or whatever you want there
I'm having issues with PAPI extension Player, where %player_direction% outputs different things depending on the location on the server.
You can see below that /compass outputs N with 359 degrees, but papi parse me %player_direction% returns NW
https://ibb.co/dBXrh4k
I have tried this in 3 location on my server so far and the closer i am to 0, 0 the center of the world the more inaccurate some of the directions become. I have tracked the following.yml N is set from 0-23 # should be 337.5 to 22.5 NE is 24-67 # should be 22.5 to 67.5 E is 67 to 113 # should be 67.5 to 112.5 SE is 113 # should be 112.5 to 157.5 S is 114-179 # should be 157.5 to 202.5 180 returns NOTHING SW is 181-239 # should be 202.5 to 247.5 W is 240-300 # should be 247.5 to 292.5 NW is 301-359 # should be 292.5 to 337.5
Is there any reason this might be happening? Any way to try and fix this on my end? Like i said, when I'm further away from the centre of the world it start working properly.
And here when i'm facing south, /compass outputs S with 180 degrees, but papi parse me %player_direction% returns BLANK
https://ibb.co/mbfv3Yn
public static BlockFace getDirection(Player player) {
return radial[Math.round(player.getLocation().getYaw() / 45f) & 0x7].getOppositeFace();
}```
that is how it is calculated in the expansion
there is probably some room for improvement lmao
Austin's Assistant
BOT
— Today at 4:57 PM
The server is now offline. Stopped <t::f>```
but what does it say in the chat
when you type /papi parse --null %javascript_unixtime%
Thankyou Star!
also fyi the yaw goes from -180 to 180 for bukkit
um, I'm still stuck with this, could anyone help or make a change?
Any idea why I'm getting this error? https://keig.tk/Feather_Launcher_MYaPzmviWZ.png
it's the same as this error ^^
and i've re-installed my expansions already
Try seeing if it loads with no expansions installed in /plugins/placeholderapi/expansions/ If that loads then slowly add them back one by one till it fails to see which one is causing it to go wonky
but it needs some expansions to be loaded in order to show them? https://keig.tk/javaw_XyF4U9CtqC.png
So yeah, slowly add back expansions till it fails
ok so i did that, they're all fine but then when i retstart the server they're all back to showing the raw text again. As soon as I do /papi reload they go back to normal
i think someone forgot to put the latest Player expansion on e-cloud.
https://ibb.co/7gxftMw
the github has 2.0.3 but latest available through ecloud is 2.0.2.
08:28:07 WARN]: [PlaceholderAPI] [math] Invalid Placeholder detected!
[08:28:07 WARN]: [PlaceholderAPI] [math] Placeholder: %math_(precision:0/60)%
[08:28:07 WARN]: [PlaceholderAPI] [math] Cause: '(precision:0/60)' is not a valid Math Expression.
help someone
@vivid sparrow should be able to answer that, potentially not stable idk the details on it.
something weird going on w/ papi on 1.18
tried updating and all placeholders just broke
the math expansion has changed its syntax in the latest version (or a recent-ish one) instead of using [precision:0], use %math_0_{expression here}%
Ok
Maybe more information about that, how it broke? errors in console?
I have no clue. We updated to latest version and all placeholders just stopped working. Are there any dependencies that I need to change?
if you mean expansions, ofc
Nvm apparently it works now yeah it was all expansions
you are updating to a totally brand new version
There was one expansion that was bugging so we deleted it and reloaded all expansions

never had that issue before, thanks for the help 🙂

Oi! so uhm i have this thing a join/leave message customizer thingy so i have a config file and i made it so it'll print out what's in the config file and i have the placeholder dependency enabled so i asked my friend why is the %player% isn't loading from the config file and he told that you so something with setPlaceholders.fillinplaceholders so i have the doubt that where should i input that setPlaceholders.fillinplaceholders to let it print our the placeholder "%player%
?player
it works fine for me, even fixed my above issue with inaccurate outputs
Hi. I am currently having trouble with the vaults placeholders. I have added the vaults placeholder to my current scoreboard plugin, but all it is doing is the showing the placeholder in the scoreboard as %vault_eco_formatted%. I have installed the placeholder and reloaded placeholderapi. Any reason why it is not showing its vaule or anyway to fix it?
- Error on start
- You dont have vault
- You dont have the vault expansion
- You dont have an economy plugin with vault support
- Your scoreboard doesnt work
- No errors on startup
- I have the latest version of vaults (compiled)
- Expansion installed, reloaded both the plugin and server
- Using essentials latest version
- Using featherboard
Any idea about the Statistic placeholder not working?
%statistic_hours_played%
Although I normally have 32 hours, this placeholder shows I've played 15 hours and it doesn't change at all.
my server paper 1.16.5
(https://github.com/ronaldburns/PlaceholderAPI/issues/84)
featherboards support placeholdderapi?
Yes
I would recommend asking for support in his discord server
I mean, thats not PlaceholderAPI
and /papi parse me %vault_eco_balance% works normally?
Let me check on that. Give me roughly an hour

Hello, i have problem with %bungee_server% for some reason placeholder
registers the number of players on the server, but does not reset when the player exits, and now i have over 99 players on survival and 400 in lobby 😄 did someone meet with something like this? how to fix it?
'0': §fW grze §6%bungee_survival% §fgraczy
What type of proxy and backend servers are you running?
Paper and on proxy waterfall 🙂
have you ever encountered such a problem? 🙂
Like which ones?
you downgraded? if so, all should be as before
but?
Edit: I guess there wasnt a "but" at all, good!
Does anyone know how to put the nbt for pixelmon?
'slot1':
material: PIXELMON_PIXELMON_SPRITE
nbt_strings:
- 'form:%pixelmon_party_1_form%'
- 'palette:%pixelmon_party_1_palette%'
nbt_ints:
- 'ndex:%pixelmon_party_1_dex_number%'
- 'gender:%pixelmon_party_1_gender%'
I tried this way but it doesn't work
PlaceholderAPI doesnt support forge/sponge afaik
For some reason /papi ecloud download TownyChat -> /papi reload seems to break papi, since papi upon reload does not register the hook and later returns "No expansions available to list" when doing /papi ecloud list installed despite hooks having been downloaded and registered. Any help?
and I know it is for sure specifically TownyChat hook doing it
/papi parse GizliBaskan %statistic_minutes_played% results 0
There is a problem with papi's Statistic.
there is no wrong other placeholders but statistic.. @final shadow are u there?
¿?
and it's working perfectly for me, it's just that option that I can't get to work
you mean you are using PlaceholderAPI from spigotmc
Any help regarding my question? Would like it solved asap
Towny support told me to go here, and I have no other reason to not do so since townychat addon by itself works fine, but since that causes incompatibility we have to use papi, but apparently downloading townychat there breaks everything
all towny files are also fully up to date
issue is the expansion
well where does papi get the expansion from?
from ecloud, which is uploaded by the dev who made the expansion
I'll ask him then
in this case, seems to be Clip
because it confused me since latest townychat version is 0.96 but papi said 1.2
nope
then why you downloaded it?
because I need its placeholders
you might have a point, I'll try reinstalling papi and try without and see if stuff works
It would be good if I could submit images here
Yes that worked Alonso, thanks. Guess it was just me being dumb :p

mmh, can anybody help me
Is there a way to add more than one input with its output
requirements:
test0:
type: string equals
input: ''
output: ''
test:
type: string equals
input: ''
output: ''
something like this ?
Hye cj, sorry for the long wait. I was really busy. Anyway, this is what it says:
that appears to fix it