Plugin

AlwaysAnimate

Animates anything that can be animated

Appearance Fun
index.ts
Download

Source

src/plugins/alwaysAnimate/index.ts
1/*
2 * FiveCord — a Discord client mod
3 * Copyright (c) 2025 FiveCord
4 * SPDX-License-Identifier: GPL-3.0-or-later
5 */
6
7import { Devs } from "@utils/constants";
8import definePlugin from "@utils/types";
9
10export default definePlugin({
11 name: "AlwaysAnimate",
12 description: "Animates anything that can be animated",
13 tags: ["Appearance", "Fun"],
14 authors: [Devs.FieryFlames],
15
16 patches: [
17 {
18 find: "canAnimate:",
19 all: true,
20 // Some modules match the find but the replacement is returned untouched
21 noWarn: true,
22 replacement: {
23 match: /canAnimate:.+?([,}].*?\))/g,
24 replace: (m, rest) => {
25 const destructuringMatch = rest.match(/}=.+/);
26 if (destructuringMatch == null) return `canAnimate:!0${rest}`;
27 return m;
28 }
29 }
30 },
31 {
32 // Status emojis
33 find: "#{intl::GUILD_OWNER}),children:",
34 replacement: {
35 match: /(\.CUSTOM_STATUS.+?animateEmoji:)\i/,
36 replace: "$1!0"
37 }
38 },
39 {
40 // Guild Banner
41 find: "#{intl::DISCOVERABLE_GUILD_HEADER_PUBLIC_INFO}",
42 replacement: {
43 match: /(guildBanner:\i,animate:)\i(?=}\):null)/,
44 replace: "$1!0"
45 }
46 },
47 {
48 // Gradient roles in chat
49 find: "=!1,contentOnly:",
50 replacement: {
51 match: /animate:\i/,
52 replace: "animate:!0"
53 }
54 },
55 {
56 // Gradient roles in member list
57 find: '="left",className:',
58 replacement: {
59 match: /,animateGradient:/,
60 replace: ",animateGradient:!0,_oldAnimateGradient:"
61 }
62 },
63 {
64 // Nameplates
65 find: ".MINI_PREVIEW,[",
66 replacement: {
67 match: /animate:\i,loop:/,
68 replace: "animate:true,loop:true,_loop:"
69 }
70 }
71 ]
72});
73