-
-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathconfig.yml.example
1962 lines (1857 loc) · 67.4 KB
/
config.yml.example
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
# ==============================================
# Ticket bot general settings
# ==============================================
rolesThatCanBlacklist: ["111111111111111111"] # The IDs of the staff roles on your server which should have access to blacklisting and unblacklisting users from creating tickets, for example ["000000000000000000", "111111111111111111"]
rolesOnBlacklist: [] # The IDs of the roles that the bot will add to blacklisted users, leave it empty to disable this feature
blacklistCleanup: "120" # The amount of time in seconds between blacklist cleanup checks, to automatically remove expired blacklisted users/roles
transcriptType: "HTML" # The type of transcript, can be "HTML" or "TXT"
transcriptName: "{channelName}-transcript" # The name of the generated transcript file, use {channelName} for the name of the ticket channel, {username} for the username of the ticket creator and {displayName} for the display name of the ticket creator. The file extension will be based on the transcript type, .html for HTML transcripts and .txt for TXT transcripts
transcriptImages: false # Enable or disable saving images in HTML transcripts, note that this will increase the size of the transcript and the time taken to generate it
reOpenStaffOnly: false # When enabled, only staff members with support roles can reopen a ticket
closeStaffOnly: true # When enabled, only staff members with support roles can use the close ticket button
deleteStaffOnly: true # When enabled, only staff members with support roles can use the delete ticket button, it's recommended to keep this option enabled unless you intend to use the allowedRoles array feature while configuring the buttons down in the config
commands_cooldown: "5" # The cooldown of commands in seconds
buttons_cooldown: "5" # The cooldown of buttons in seconds
maxOpenTickets: "1" # The maximum number of open tickets a user can have at one time
preventNewTicket: false # This feature will check if the user has a closed ticket before creating a new one, do not enable it unless you really need it and it fits your use-case. Enabling it without allowing the user to reopen or see their closed ticket will cause issues, please be aware. The feature will disable itself if maxOpenTickets is not equal to 1.
silentStartup: false # When enabled, the bot will avoid unnecessary console logging when starting up
deleteTicketTime: "5" # The time in seconds before a ticket is deleted
claimFeature: false # Enable or disable the claim button/feature
claimRename: false # Enable or disable renaming a ticket to category-USERNAME when it gets claimed, it will use the username of the support staff who claimed it
claimRenameName: "{category}-{username}" # The new name of the ticket when it gets claimed, the options are: {category} for the ticket category, {username} for the username of the staff who claimed it, {displayname} for the displayname/nickname of the staff
claim1on1: false # When this feature is enabled, upon the claiming of a ticket only the ticket creator and the staff who claimed the ticket will be able to chat in it
status:
botActivityText: "Support Tickets" # The activity message of the bot
botActivityType: "Watching" # The activity type of the bot, can be "Playing", "Streaming", "Listening", "Watching", "Competing"
streamingOptionURL: "" # The URL in case you use the streaming option
botStatus: "online" # The status of the bot, can be "online", "idle", "dnd", "invisible", note that the streaming type requires the "online" status
alertReply:
enabled: false # Enable or disable listening to the ticket creator reply for the amount of time specified in the config below, after the alert is sent.
time: "300" # The default amount of time in seconds, avoid using values which are too high or too low
autoAction: "none" # The automated action the bot will take if the user did not reply within the time defined above, can be "close" or "delete" which will either automatically close or delete their ticket, you may also put it as "none" to disable the automation
autoCloseTickets:
enabled: false # Enable or disable automatically closing tickets
interval: "60" # The interval in seconds for the automatic ticket close task to run
time: "86400" # The amount of time in seconds from the last message in the ticket before it gets automatically closed. For example, if this is specified as 1 day in seconds, the ticket will be closed if the last message sent in the channel is 1 day old. Default time is 1 day.
ignoreBots: false # Ignore messages sent by bots when checking for the last message in a ticket
autoDeleteTickets:
enabled: false # Enable or disable automatically deleting closed tickets
interval: "60" # The interval in seconds for the automatic ticket delete task to run
time: "86400" # The amount of time in seconds from the ticket "closed at" time before the ticket gets automatically deleted. For example, if this is specified as 1 day in seconds, the ticket will be deleted if it was closed 1 day ago without it being reopened by anyone. Default time is 1 day.
onUserLeave: "close" # The automated action the bot will take when a user leaves the server while having a ticket open, can be "close" or "delete" which will either automatically close or delete their ticket, you may also put it as "none" to disable the automation
addUsersBack: true # When enabled, the bot will add users back to any ticket they created that still exists in the server, works for both open and closed tickets. Note that this will also give the users "ViewChannel" and "ReadMessageHistory" permissions if they were added back to a closed ticket.
statsChannels:
enabled: false # Enable or disable the stats channels
interval: "600" # The interval in seconds for the stats channels to update, cannot be lower than 600 which is 10 minutes in order to avoid discord channel rename rate limits
channels:
- channelID: "111111111111111111" # The ID of the voice channel that will be renamed frequently with the updated stats
type: "totalTickets" # The type of statistic to display, the options are the following: totalTickets, openTickets, totalClaims, totalReviews, ratings, totalMessages, ticketCreators, avgTicketCreators, memberCount
name: "Total Tickets: {stats}" # The name of the stats channel, use the placeholder {stats} to display the result of the stats based on the type selected above
- channelID: "111111111111111111"
type: "openTickets"
name: "Total Open Tickets: {stats}"
- channelID: "111111111111111111"
type: "ratings"
name: "Average Rating: {stats}/5.0"
# ==============================================
# Ticket Category settings
# ==============================================
# The limit set by discord is 25, though it is highly recommended not to use such a high amount of types considering each types uses 2 categories and the discord limit is 50 categories, you would no longer have categories left to use for your normal discord channels...
# For the permissions section, the possible values are: ViewChannel, SendMessages, EmbedLinks, AttachFiles, ReadMessageHistory, ManageChannels, ManageWebhooks, CreateInstantInvite, CreatePrivateThreads, CreatePublicThreads, SendMessagesInThreads, AddReactions, UseExternalEmojis, UseExternalStickers, MentionEveryone, ManageMessages, ManageThreads, UseApplicationCommands, SendVoiceMessages, UseEmbeddedActivities, SendTTSMessages
# NOTE: The bot may need to be given Administrator permissions depending on the permissions you set in the categories, if you get a console error that says "Missing Permissions" then your bot is lacking permissions.
TicketCategories:
- id: 1 # Unique ID for each category, ONLY USE NUMBERS (It is suggested to just increment this value by 1 each time)
name: "report" # The name of the category, it will be in lowercase anyways
nameEmoji: "⌛️" # The emoji of the category name, "⌛️report" in that case or make it "⌛️-" to get "⌛️-report", you may also leave it as an empty string "" to use no emojis
categoryID: ["111111111111111111"] # The IDs of the categories where those tickets will be created, for example ["000000000000000000", "111111111111111111"]
closedCategoryID: ["111111111111111111"] # The IDs of the categories where the closed tickets will go, for example ["000000000000000000", "111111111111111111"]
support_role_ids: ["000000000000000000", "111111111111111111"] # The IDs of the staff roles on your server that can access only this ticket category, for example ["000000000000000000", "111111111111111111"]
permissions: # The permissions of the category, make sure to never add the same permission to both the allow and deny arrays of either open or close properties
ticketCreator:
open:
allow: ["ViewChannel", "SendMessages", "EmbedLinks", "AttachFiles", "ReadMessageHistory"] # The bot will allow those permissions to the ticket creator in an open ticket
deny: [] # The bot will deny those permissions from the ticket creator in an open ticket
close:
allow: [] # The bot will allow those permissions to the ticket creator in a closed ticket
deny: ["SendMessages"] # The bot will deny those permissions from the ticket creator in a closed ticket
supportRoles:
open:
allow: ["ViewChannel", "SendMessages", "EmbedLinks", "AttachFiles", "ReadMessageHistory"]
deny: []
close:
allow: []
deny: ["SendMessages"]
addedRoles:
open:
allow: ["ViewChannel", "SendMessages", "EmbedLinks", "AttachFiles", "ReadMessageHistory"]
deny: []
close:
allow: []
deny: ["SendMessages"]
addedUsers:
open:
allow: ["ViewChannel", "SendMessages", "EmbedLinks", "AttachFiles", "ReadMessageHistory"]
deny: []
close:
allow: []
deny: ["SendMessages"]
pingRoles: false # Enable or disable pinging roles when a ticket is opened in this category
ping_role_ids: [] # The IDs of the roles you want to ping when a ticket is opened in this category, for example ["000000000000000000", "111111111111111111"]
ghostPingRoles: false # Enable or disable ghost pinging the ping_role_ids when a ticket is opened, use either {support-roles} in textContent below or this option, avoid using both because then the support roles will receive 2 pings
textContent: "" # The text content that is sent alongside the embed, use {support-roles} for the support roles only if you enabled pingRoles above, you may also use {user} and {user.tag}
creatorRoles: [] # The IDs of the roles that can create tickets in this category, keep it empty to allow all roles to create tickets
buttonEmoji: "👮" # The emoji of the button, leave it empty "" to use no emojis
buttonLabel: "Report a user" # The name of the button
buttonStyle: "Success" # Options: "Primary" which is blurple, "Secondary" which is grey, "Success" which is green, "Danger" which is red and do NOT use "Link"
menuEmoji: "👮" # The emoji of the select menu option, leave it empty "" to use no emojis
menuLabel: "Report a user" # The name of the select menu option
menuDescription: "Click on this option to open a report user ticket!" # The description of the select menu option
embedTitle: "Report Ticket" # The title of the embed
color: "#FFD700" # The color of embed in the opened ticket
description: "Welcome {user} ({user.tag}) to your report ticket! Please be patient while a staff member responds to your report." # The description of the embed in the created ticket, right above the questions fields, use {user} for the user such as @User and {user.tag} for the name of the user without it being mentioned such as User
ticketName: "category-ticketcount" # Options are: category-username (will be called category-username such as general-ralphkb), category-ticketcount (will be called category-ticketcount such as general-12348), username-ticketcount (will be called username-ticketcount such as ralphkb-12348), username-category (will be called username-category such as ralphkb-general), username-category-ticketcount (will be called username-category-ticketcount such as ralphkb-general-12348), or category-username-ticketcount (will be called category-username-ticketcount such as general-ralphkb-12348)
ticketTopic: "Ticket Creator: {user} | Ticket Type: {type}" # The topic of the ticket channel
slowmode: "0" # The slowmode of the ticket channel in seconds, keep it 0 if you don't want a slowmode and do not use negative values
useCodeBlocks: false # Set this to true if you want to use code blocks to display the answers of the ticket category questions
modalTitle: "User Report Format" # The title of the modal
questions: # Maximum number of questions is 5, you should at least keep 1 question since that information will always help you in any ticket
- label: "What is your username?"
placeholder: "Write your username"
style: "Short" # Short or Paragraph
required: true # If this input is required or not, can be true or false
minLength: 3 # Set the minimum number of characters required for submission
- label: "Reported username?"
placeholder: "Write their username"
style: "Short"
required: true
minLength: 3
- label: "Why are you reporting them?"
placeholder: "Explain with details"
style: "Paragraph"
required: true
minLength: 50
maxLength: 1000 # Set the maximum number of characters allowed for submission, only works for Paragraph style and the limit is 1000
- id: 2 # Unique ID for each category
name: "other"
nameEmoji: "" # The emoji of the category name, leave it as an empty string "" to use no emojis
categoryID: ["111111111111111111"] # The IDs of the categories where those tickets will be created, for example ["000000000000000000", "111111111111111111"]
closedCategoryID: ["111111111111111111"] # The IDs of the categories where the closed tickets will go, for example ["000000000000000000", "111111111111111111"]
support_role_ids: ["000000000000000000"] # The IDs of the staff roles on your server that can access only this ticket category, for example ["000000000000000000", "111111111111111111"]
permissions: # The permissions of the category, make sure to never add the same permission to both the allow and deny arrays of either open or close properties
ticketCreator:
open:
allow: ["ViewChannel", "SendMessages", "EmbedLinks", "AttachFiles", "ReadMessageHistory"] # The bot will allow those permissions to the ticket creator in an open ticket
deny: [] # The bot will deny those permissions from the ticket creator in an open ticket
close:
allow: [] # The bot will allow those permissions to the ticket creator in a closed ticket
deny: ["SendMessages"] # The bot will deny those permissions from the ticket creator in a closed ticket
supportRoles:
open:
allow: ["ViewChannel", "SendMessages", "EmbedLinks", "AttachFiles", "ReadMessageHistory"]
deny: []
close:
allow: []
deny: ["SendMessages"]
addedRoles:
open:
allow: ["ViewChannel", "SendMessages", "EmbedLinks", "AttachFiles", "ReadMessageHistory"]
deny: []
close:
allow: []
deny: ["SendMessages"]
addedUsers:
open:
allow: ["ViewChannel", "SendMessages", "EmbedLinks", "AttachFiles", "ReadMessageHistory"]
deny: []
close:
allow: []
deny: ["SendMessages"]
pingRoles: true # Enable or disable pinging roles when a ticket is opened in this category
ping_role_ids: ["000000000000000000"] # The IDs of the roles you want to ping when a ticket is opened in this category,, for example ["000000000000000000", "111111111111111111"]
ghostPingRoles: false # Enable or disable ghost pinging the ping_role_ids when a ticket is opened, use either {support-roles} in textContent below or this option, avoid using both because then the support roles will receive 2 pings
textContent: "Please wait for the {support-roles} to check your ticket!" # The text content that is sent alongside the embed, use {support-roles} for the support roles only if you enabled pingRoles above, you may also use {user} and {user.tag}
creatorRoles: [] # The IDs of the roles that can create tickets in this category, keep it empty to allow all roles to create tickets
buttonEmoji: "🤔" # The emoji of the button, leave it empty "" to use no emojis
buttonLabel: "Other" # The name of the button
buttonStyle: "Primary" # Options: "Primary" which is blurple, "Secondary" which is grey, "Success" which is green, "Danger" which is red and do NOT use "Link"
menuEmoji: "🤔" # The emoji of the select menu option, leave it empty "" to use no emojis
menuLabel: "Other" # The name of the select menu option
menuDescription: "Click on this option to open a miscellaneous ticket!" # The description of the select menu option
embedTitle: "Other Ticket" # The title of the embed
color: "#ADD8E6" # The color of embed in the opened ticket
description: "Welcome {user} ({user.tag}) to your other ticket! Please be patient while a staff member responds to your questions." # The description of the embed in the created ticket, right above the questions fields, use {user} for the user such as @User and {user.tag} for the name of the user without it being mentioned such as User
ticketName: "category-username" # Options are: category-username (will be called category-username such as general-ralphkb), category-ticketcount (will be called category-ticketcount such as general-12348), username-ticketcount (will be called username-ticketcount such as ralphkb-12348), username-category (will be called username-category such as ralphkb-general), username-category-ticketcount (will be called username-category-ticketcount such as ralphkb-general-12348), or category-username-ticketcount (will be called category-username-ticketcount such as general-ralphkb-12348)
ticketTopic: "Ticket Creator: {user} | Ticket Type: {type}" # The topic of the ticket channel
slowmode: "0" # The slowmode of the ticket channel in seconds, keep it 0 if you don't want a slowmode and do not use negative values
useCodeBlocks: false # Set this to true if you want to use code blocks to display the answers of the ticket category questions
modalTitle: "Other Ticket Format" # The title of the modal
questions: # Maximum number of questions is 5, you should at least keep 1 question since that information will always help you in any ticket
- label: "What is your question?"
placeholder: "Write your question"
style: "Paragraph" # Short or Paragraph
required: true # If this input is required or not, can be true or false
minLength: 10 # Set the minimum number of characters required for submission
maxLength: 1000 # Set the maximum number of characters allowed for submission, only works for Paragraph style and the limit is 1000
# ==============================================
# Multi Panel settings
# ==============================================
panels:
- id: 1 # Unique ID for each panel
categories: ["1, 2"] # The categories that the panel will contain, use the IDs of the categories above, make sure they are valid and don't leave it empty
maxButtonsPerRow: "5" # The maximum number of buttons per row, note that this will reduce the total amount of categories you can create due to a limitation of 5 rows per message
menuPlaceholder: "Select a category to open a ticket." # The placeholder of the select menu
panelEmbed:
color: "#2FF200"
title: "Support Tickets"
description: "To create a support ticket, click on one of the buttons below depending on what help you need." # Use \n to create a new line for this embed description if needed
timestamp: true
URL: ""
image: ""
thumbnail: ""
footer:
text: "Sentinel Tickets"
iconURL: ""
author:
name: ""
iconURL: ""
url: ""
# ==============================================
# Ticket DM user settings
# ==============================================
# Enable or disable sending a direct message to a user once their ticket has been deleted.
# If all 3 options are set to false, then no DM will be sent.
DMUserSettings:
embed: true # Enable or disable sending an embed in the DM
transcript: true # Enable or disable sending a transcript in the DM
ratingSystem:
enabled: false # You can enable the rating system while keeping the above 2 options disabled
menu:
emoji: "⭐"
placeholder: "Select a Rating"
modal: true # Enable or disable sending a feedback modal in the DM, if disabled then the users will only provide a rating from 1 to 5
modalTitle: "Ticket Feedback"
questions: # Maximum number of questions is 5, you must keep a minimum of 1 to use this feature
- label: "What is your feedback?"
placeholder: "Write your feedback here."
style: "Paragraph" # Short or Paragraph
required: true # If this input is required or not, can be true or false (must be kept to true when there is only 1 question)
minLength: 80 # Set the minimum number of characters required for submission
maxLength: 1000 # Set the maximum number of characters allowed for submission, only works for Paragraph style and the limit is 1000
# ==============================================
# Slash commands settings
# ==============================================
# You can disable a command by setting enabled: false for any of them, although it's recommended you keep all of them enabled
# For information regarding what options you have as permissions for each command, check out this link: https://discord-api-types.dev/api/discord-api-types-payloads/common#PermissionFlagsBits
commands:
add:
enabled: true
permission: "KickMembers"
pingUser: false # Ping the newly added user
alert:
enabled: true
permission: "KickMembers"
transcript:
enabled: true
permission: "KickMembers"
claim:
enabled: true
permission: "KickMembers"
unclaim:
enabled: true
permission: "KickMembers"
move:
enabled: true
permission: "KickMembers"
updateTopic: true
transfer:
enabled: true
permission: "KickMembers"
pingUser: false # Ping the new ticket creator
updateTopic: true # Update the channel topic
pin:
enabled: true
permission: "KickMembers"
emoji: "📌"
alreadyPinned: "This ticket is already pinned!"
priority:
enabled: true
permission: "KickMembers"
emojis:
low: "🟢"
medium: "🟡"
high: "🔴"
alreadyPriority: "This ticket is already assigned a priority!"
notPriority: "This ticket is not assigned a priority!"
slowmode:
enabled: true
permission: "KickMembers"
alreadySlowmode: "This ticket channel already has that slowmode."
slowmodeRemoved: "The slowmode has been removed from this ticket."
close:
enabled: true
permission: "KickMembers"
closerequest:
enabled: true
permission: "ViewChannel"
pingRoles: false # Enable or disable pinging the support roles of the ticket category where the command is used, no roles will be pinged if the category ping_role_ids is empty.
reopen:
enabled: true
permission: "KickMembers"
delete:
enabled: true
permission: "KickMembers"
panel:
enabled: true
permission: "ManageChannels"
support_role_ids: [] # The IDs of the staff roles on your server that can use the panel command, they must also have the permission above, keep it empty to not require a role.
remove:
enabled: true
permission: "KickMembers"
rename:
enabled: true
permission: "KickMembers"
topic:
enabled: true
permission: "KickMembers"
blacklist:
enabled: true
permission: "KickMembers"
userOrRoleError: "Please provide either a user or a role, but not both or none."
wrongDuration: "Invalid duration format, please use one of the following formats: 1s 1m 1h 1d 1w (e.g. 5s, 10m, 2h, 3d, 4w)"
validPage: "Please provide a valid page number greater than or equal to 1."
blacklistEmpty: "The blacklist is currently empty!"
blacklistEmptyType: "The {type} blacklist is currently empty!" # Use {type} for the blacklist type which is either user or role
pageError: "The specified page does not exist. Please choose a page between 1 and {maxPage}." # Use {maxPage} for the maximum number of pages available
unblacklist:
enabled: true
permission: "KickMembers"
ping:
enabled: true
permission: "KickMembers"
stats:
enabled: true
permission: "KickMembers"
support_role_ids: [] # The IDs of the admin role(s) on your server that can use the stats set subcommand, which can be dangerous in allowing the modification of some statistics. Keeping it empty will allow no roles to modify the stats. This command has been added to adjust stats mistakes in case of issues or inconsistencies.
help:
enabled: true
permission: "KickMembers"
preference:
enabled: false
permission: "ViewChannel"
defaultDM: true # The default value of the preference
tickets:
enabled: true
permission: "ViewChannel"
support_role_ids: [] # The IDs of the staff roles on your server that can use this command's user argument to see the list of current tickets of other users, they must also have the permission above, keeping it empty will allow no roles to access the list of current tickets of other users.
userInfo:
enabled: true
permission: "KickMembers"
contextMenuCommands:
userInfo:
enabled: true
permission: "KickMembers"
blacklistAdd:
enabled: true
permission: "KickMembers"
blacklistRemove:
enabled: true
permission: "KickMembers"
ticketAlert:
enabled: true
permission: "KickMembers"
ticketPin:
enabled: true
permission: "KickMembers"
ticketTranscript:
enabled: true
permission: "KickMembers"
ticketsList: # Note that this command shares the same support_role_ids array as the tickets slash command above.
enabled: true
permission: "ViewChannel"
ticketCloseRequest:
enabled: true
permission: "ViewChannel"
ticketClaim:
enabled: true
permission: "KickMembers"
ticketUnclaim:
enabled: true
permission: "KickMembers"
# ==============================================
# General button settings
# ==============================================
# If you intend to use the allowedRoles options in this section, you should probably disable reOpenStaffOnly, closeStaffOnly & deleteStaffOnly at the top of the configuration because otherwise the users will require both the below allowed roles & the support role of a ticket category.
closeButton:
label: "Close" # The label of the button
emoji: "🔒" # The emoji of the button
style: "Danger" # Options: "Primary" which is blurple, "Secondary" which is grey, "Success" which is green, "Danger" which is red and do NOT use "Link"
allowedRoles: [] # The IDs of the roles that can use the close button, keep it empty to not require a role
reOpenButton:
label: "Reopen" # The label of the button
emoji: "🔓" # The emoji of the button
style: "Success" # Options: "Primary" which is blurple, "Secondary" which is grey, "Success" which is green, "Danger" which is red and do NOT use "Link"
allowedRoles: [] # The IDs of the roles that can use the reopen button, keep it empty to not require a role
transcriptButton:
label: "Transcript" # The label of the button
emoji: "📝" # The emoji of the button
style: "Primary" # Options: "Primary" which is blurple, "Secondary" which is grey, "Success" which is green, "Danger" which is red and do NOT use "Link"
deleteButton:
label: "Delete" # The label of the button
emoji: "⛔" # The emoji of the button
style: "Danger" # Options: "Primary" which is blurple, "Secondary" which is grey, "Success" which is green, "Danger" which is red and do NOT use "Link"
allowedRoles: [] # The IDs of the roles that can use the delete button, keep it empty to not require a role
claimButton:
label: "Claim" # The label of the button
emoji: "👋" # The emoji of the button
style: "Success" # Options: "Primary" which is blurple, "Secondary" which is grey, "Success" which is green, "Danger" which is red and do NOT use "Link"
unclaimButton:
label: "Unclaim" # The label of the button
emoji: "👋" # The emoji of the button
style: "Danger" # Options: "Primary" which is blurple, "Secondary" which is grey, "Success" which is green, "Danger" which is red and do NOT use "Link"
newTicketButton:
label: "Click Here" # The label of the button
emoji: "🎫" # The emoji of the button
closeRequestButton:
label: "Accept & Close" # The label of the button
emoji: "✅" # The emoji of the button
style: "Success" # Options: "Primary" which is blurple, "Secondary" which is grey, "Success" which is green, "Danger" which is red and do NOT use "Link"
# ==============================================
# Working Hours Settings
# ==============================================
# Note: if the working hours system is not working, it's most likely due to incorrect configuration of the min and max hours.
workingHours:
enabled: false # Enable or disable the working hours feature
timezone: "Europe/Paris" # The timezone of the working hours, options on this link should work: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
bypassRoles: [] # The IDs of the roles that can bypass the working hours block ticket creation, keep it empty to turn off this feature
default: # The default working hours for any day that is not specified below
min: "09:00"
max: "17:00"
blockTicketCreation: true
days:
- day: "monday" # The day of the week, the options are "monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday"
min: "09:00" # The minimum hour, make sure to use the 24 hour format HH:MM, examples: 00:59, 05:00, 17:00, 23:59 don't forget to include the first 0.
max: "17:00" # The maximum hour, make sure to use the 24 hour format HH:MM, examples: 00:59, 05:00, 17:00, 23:59 don't forget to include the first 0.
blockTicketCreation: true # Enable or disable the blocking of ticket creation outside the working hours
- day: "tuesday"
min: "09:00"
max: "17:00"
blockTicketCreation: true
- day: "wednesday"
min: "09:00"
max: "17:00"
blockTicketCreation: true
- day: "thursday"
min: "09:00"
max: "17:00"
blockTicketCreation: true
- day: "friday"
min: "09:00"
max: "17:00"
blockTicketCreation: true
- day: "saturday"
min: "09:00"
max: "12:00"
blockTicketCreation: true
- day: "sunday"
min: "09:00"
max: "12:00"
blockTicketCreation: true
outsideWarning: true # If working hours is enabled, this option will enable or disable the warning embed when a ticket is created outside the working hours
addField: true # If working hours is enabled, this option will enable or disable the addition of the working hours field to the ticket creation embed
fieldTitle: "Working Hours" # The title of the working hours field
valueDays: "TODAY" # Options are: "TODAY" which will only show today's working hours or "ALL" which will show the configured working hours for each day
fieldValue: "> {day}: {openingTime} to {closingTime}" # The value of each working hours field, use {day} for today's day of the week, {openingTime} for the opening time and {closingTime} for the closing time
# The embed that is sent when the ticket creation is blocked due to being outside the working hours
workingHoursEmbed:
color: "#FF0000"
title: "Working Hours"
description: "Tickets are only open between {openingTime} and {closingTime}.\nThe current time now is {now}." # The message displayed when the ticket creation is blocked, use {openingTime} for the opening time, {closingTime} for the closing time and {now} for the current time
timestamp: true
URL: ""
image: ""
thumbnail: ""
footer:
text: ""
iconURL: ""
author:
name: ""
iconURL: ""
url: ""
# The embed that is sent when a ticket is created outside the working hours
outsideWorkingHoursEmbed:
color: "#FF0000"
title: "Outside Working Hours"
description: "You created a ticket outside of our working hours. Please be aware that our response time may be delayed.\nOur working hours for today are from {openingTime} to {closingTime}." # Use {openingTime} for the opening time, {closingTime} for the closing time
timestamp: true
URL: ""
image: ""
thumbnail: ""
footer:
text: ""
iconURL: ""
author:
name: ""
iconURL: ""
url: ""
# ==============================================
# Log channels
# ==============================================
# In this section you can enable/disable certain logs. By default all logs are enabled.
toggleLogs:
userAdd: true
userRemove: true
userLeft: true
ticketCreate: true
ticketClose: true
ticketAlert: true
ticketReopen: true
ticketDelete: true
ticketClaim: true
ticketUnclaim: true
ticketMove: true
ticketRename: true
ticketTopic: true
ticketTransfer: true
ticketPin: true
ticketSlowmode: true
ticketPriority: true
ticketFeedback: true
DMErrors: true
blacklistAdd: true
blacklistRemove: true
# This section allows you to configure the channels where the bot will send different logs. Make sure to at least configure the default log channel.
# By leaving a channel empty "" the bot will fallback to the default log channel.
logs:
default: "111111111111111111" # The ID of the default log channel
transcripts: "111111111111111111" # The ID of the log channel for manual transcripts obtained with the transcript button or command
userAdd: ""
userRemove: ""
userLeft: ""
ticketCreate: ""
ticketClose: ""
ticketAlert: ""
ticketReopen: ""
ticketDelete: ""
ticketClaim: ""
ticketUnclaim: ""
ticketMove: ""
ticketRename: ""
ticketTopic: ""
ticketTransfer: ""
ticketPin: ""
ticketSlowmode: ""
ticketPriority: ""
ticketFeedback: ""
DMErrors: ""
blacklistAdd: ""
blacklistRemove: ""
# ==============================================
# Embeds Locale
# ==============================================
# NOTE: While configuring embed options, you can leave it as an empty string to not use the option or set it to anything you want.
# Options such as color and description may fallback to a default value since otherwise an error would be generated in some cases.
# By deleting an option entirely from this part of the config, the bot will try to fallback to a default value otherwise it will skip the option.
# For example, if you remove the thumbnail option, the bot will use the default thumbnail if available, otherwise no thumbnail will be added.
# The embed that is sent when a new ticket is created, with the questions included
# For this embed, the options that you do not find here are most likely unique to each category and configured in the category settings above
ticketOpenEmbed:
title: "" # Keep it empty to use the author field as the title based on your configured title in the category settings
timestamp: true
URL: ""
image: ""
# thumbnail: ""
# footer:
# text: ""
# iconURL: ""
useMenu: false # Enable or disable using a select menu instead of buttons
menuPlaceholder: "Select an option" # The placeholder of the select menu if it's enabled
closeDescription: "Close this ticket." # The description of the close select menu option
claimDescription: "Claim this ticket." # The description of the claim select menu option
unclaimDescription: "Unclaim this ticket." # The description of the unclaim select menu option
# Log embed for newly created tickets
logTicketOpenEmbed:
color: "#2FF200"
title: "Ticket Logs | Ticket Created"
description: ""
timestamp: true
URL: ""
image: ""
# thumbnail: ""
# footer:
# text: ""
# iconURL: ""
author:
name: ""
iconURL: ""
url: ""
field_creator: "• Ticket Creator"
field_ticket: "• Ticket"
field_creation: "• Creation Time"
# New ticket embed that is sent to the user when they open a new ticket, directing them to it
newTicketEmbed:
color: "#2FF200"
title: "Ticket Created!"
description: "Your new ticket ({channel}) has been created, **{user}**!" # Use {channel} for the name of the new created ticket and {user} for the name of the user who created the ticket
timestamp: true
URL: ""
image: ""
thumbnail: ""
# footer:
# text: ""
# iconURL: ""
author:
name: ""
iconURL: ""
url: ""
# Blacklist command embed when it fails to blacklist a user or role
blacklistFailedEmbed:
color: "#2FF200"
title: ""
description: "**{target} ({target.tag})** is already in the blacklist." # Use {target} for the user or role such as @User, @Role and {target.tag} for the name of the user or role without it being mentioned such as User, Role.
timestamp: false
URL: ""
image: ""
thumbnail: ""
footer:
text: ""
iconURL: ""
author:
name: ""
iconURL: ""
url: ""
# Blacklist command embed when it is successful in blacklisting a user or role
blacklistSuccessEmbed:
color: "#2FF200"
title: ""
description: "**{target} ({target.tag})** has been added to the blacklist.\nReason: **{reason}**\nDuration: **{duration}**" # Use {target} for the user or role such as @User, @Role and {target.tag} for the name of the user or role without it being mentioned such as User, Role and {reason} for the reason, {duration} for the duration
timestamp: false
URL: ""
image: ""
thumbnail: ""
footer:
text: ""
iconURL: ""
author:
name: ""
iconURL: ""
url: ""
# Log embed for User and role blacklist command
logBlacklistEmbed:
color: "#2FF200"
title: "Ticket Logs | Target Blacklisted"
description: ""
timestamp: true
URL: ""
image: ""
# thumbnail: ""
# footer:
# text: ""
# iconURL: ""
author:
name: ""
iconURL: ""
url: ""
field_staff: "• Staff"
field_target: "• Target"
field_reason: "• Reason"
field_duration: "• Duration"
# Unblacklist command embed when it fails to unblacklist a user or role
unblacklistFailedEmbed:
color: "#2FF200"
title: ""
description: "**{target} ({target.tag})** is not currently in the blacklist." # Use {target} for the user or role such as @User, @Role and {target.tag} for the name of the user or role without it being mentioned such as User, Role.
timestamp: false
URL: ""
image: ""
thumbnail: ""
footer:
text: ""
iconURL: ""
author:
name: ""
iconURL: ""
url: ""
# Unblacklist command embed when it is successful in unblacklisting a user or role
unblacklistSuccessEmbed:
color: "#2FF200"
title: ""
description: "**{target} ({target.tag})** has been removed from the blacklist.\nReason: **{reason}**" # Use {target} for the user or role such as @User, @Role and {target.tag} for the name of the user or role without it being mentioned such as User, Role and {reason} for the reason
timestamp: false
URL: ""
image: ""
thumbnail: ""
footer:
text: ""
iconURL: ""
author:
name: ""
iconURL: ""
url: ""
# Log embed for User and role unblacklist command
logUnblacklistEmbed:
color: "#2FF200"
title: "Ticket Logs | Target Unblacklisted"
description: ""
timestamp: true
URL: ""
image: ""
# thumbnail: ""
# footer:
# text: ""
# iconURL: ""
author:
name: ""
iconURL: ""
url: ""
field_staff: "• Staff"
field_target: "• Target"
field_reason: "• Reason"
# Blacklist list command embed
blacklistListEmbed:
color: "#2FF200"
title: "Blacklisted {type} - Page {page}"
# Description is the content of the blacklist list command, so this option will not work for this embed.
# description: ""
timestamp: false
URL: ""
image: ""
thumbnail: ""
footer:
text: ""
iconURL: ""
author:
name: ""
iconURL: ""
url: ""
# User and role add embed
addEmbed:
ephemeral: false
color: "#2FF200"
title: ""
description: "Added **{target} ({target.tag})** to the ticket.\nReason: **{reason}**" # Use {target} for the user or role such as @User, @Role and {target.tag} for the name of the user or role without it being mentioned such as User, Role & {reason} for the reason.
timestamp: false
URL: ""
image: ""
thumbnail: ""
footer:
text: ""
iconURL: ""
author:
name: ""
iconURL: ""
url: ""
# Log embed for User and role add command
logAddEmbed:
color: "#2FF200"
title: "Ticket Logs | Target Added"
description: ""
timestamp: true
URL: ""
image: ""
# thumbnail: ""
# footer:
# text: ""
# iconURL: ""
author:
name: ""
iconURL: ""
url: ""
field_staff: "• Staff"
field_target: "• Target"
field_ticket: "• Ticket"
field_reason: "• Reason"
# Alert reply embed that will be sent in the ticket if the ticket creator is active and answered, when the alertReply feature is enabled
alertReplyEmbed:
color: "#2FF200"
title: "Alert Reply Notification"
description: "The user replied to the alert and seems to be available."
timestamp: true
URL: ""
image: ""
thumbnail: ""
footer:
text: ""
iconURL: ""
author:
name: ""
iconURL: ""
url: ""
# Alert command embed
alertEmbed:
color: "#2FF200"
title: "Ticket Close Notification"
description: "This ticket will be closed soon if no response has been received." # You can use {time} for the time (uses a discord timestamp in the format: in X time, such as "in 10 minutes") until the ticket gets automatically closed or deleted depending on how you configured the alertReply options at the top of the configuration.
timestamp: true
URL: ""
image: ""
thumbnail: ""
footer:
text: ""
iconURL: ""
author:
name: ""
iconURL: ""
url: ""
# Log embed for ticket alerts
logAlertEmbed:
color: "#FF2400"
title: "Ticket Logs | Ticket Alert"
description: ""
timestamp: true
URL: ""
image: ""
# thumbnail: ""
# footer:
# text: ""
# iconURL: ""
author:
name: ""
iconURL: ""
url: ""
field_staff: "• Alert Sent By"
field_user: "• Alert Sent To"
field_creator: "• Ticket Creator"
field_ticket: "• Ticket"
field_time: "• Time"
# User and role remove embed
removeEmbed:
ephemeral: false
color: "#FF0000"
title: ""
description: "Removed **{target} ({target.tag})** from the ticket.\nReason: **{reason}**" # Use {target} for the user or role such as @User, @Role and {target.tag} for the name of the user or role without it being mentioned such as User, Role & {reason} for the reason.
timestamp: false
URL: ""
image: ""
thumbnail: ""
footer:
text: ""
iconURL: ""
author:
name: ""
iconURL: ""
url: ""
# Log embed for User and role remove command
logRemoveEmbed:
color: "#FF0000"
title: "Ticket Logs | Target Removed"
description: ""
timestamp: true
URL: ""
image: ""
# thumbnail: ""
# footer:
# text: ""
# iconURL: ""
author:
name: ""
iconURL: ""
url: ""
field_staff: "• Staff"
field_target: "• Target"
field_ticket: "• Ticket"
field_reason: "• Reason"
# Embed that gets sent in a ticket if the ticket creator left the discord server
userLeftEmbed:
color: "#FF0000"
title: "User left the server"
description: "The user **{user}** left the server." # You can use {user} as a placeholder for the username of the member who left & \n for a new line
timestamp: true
URL: ""
image: ""
thumbnail: ""
# Keep those options commented out if you want to use the default values which are the name of the user who left and their icon URL.
# footer:
# text: ""
# iconURL: ""
author:
name: ""
iconURL: ""
url: ""
# Log embed for when a user left the server while having tickets open
logUserLeftEmbed:
color: "#FF0000"
title: "Ticket Logs | User Left"
description: ""
timestamp: true
URL: ""
image: ""
# thumbnail: ""
# footer:
# text: ""
# iconURL: ""
author:
name: ""
iconURL: ""
url: ""
field_user: "• Ticket Creator"
field_ticket: "• Ticket"
field_creation: "• Creation Time"
field_action: "• Automated Action"
field_claimedBy: "• Claimed By"
# Move command embed
moveEmbed:
ephemeral : false
color: "2FF200"
title: ""
description: "Moved this ticket to the **{category}** category." # Use {category} for the name of the category
timestamp: false
URL: ""
image: ""
thumbnail: ""
footer:
text: ""
iconURL: ""
author:
name: ""
iconURL: ""
url: ""
# Log embed for move command
logMoveEmbed:
color: "2FF200"
title: "Ticket Logs | Ticket Moved"
description: ""
timestamp: true
URL: ""
image: ""
# thumbnail: ""
# footer:
# text: ""
# iconURL: ""
author:
name: ""
iconURL: ""
url: ""
field_staff: "• Staff"
field_ticket: "• Ticket"
field_category: "• Category"
# Pin command embed
pinEmbed:
ephemeral : false
color: "2FF200"
title: ""
description: "This ticket has been pinned."
timestamp: false
URL: ""
image: ""
thumbnail: ""
footer:
text: ""
iconURL: ""
author:
name: ""
iconURL: ""
url: ""
# Log embed for pin command
logPinEmbed:
color: "#2FF200"
title: "Ticket Logs | Ticket Pinned"
description: ""
timestamp: true
URL: ""