Plugin
AlwaysAnimate
Animates anything that can be animated
1
/*2
* FiveCord — a Discord client mod3
* Copyright (c) 2025 FiveCord4
* SPDX-License-Identifier: GPL-3.0-or-later5
*/6
7
import { Devs } from "@utils/constants";8
import definePlugin from "@utils/types";9
10
export 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 untouched21
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 emojis33
find: "#{intl::GUILD_OWNER}),children:",34
replacement: {35
match: /(\.CUSTOM_STATUS.+?animateEmoji:)\i/,36
replace: "$1!0"37
}38
},39
{40
// Guild Banner41
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 chat49
find: "=!1,contentOnly:",50
replacement: {51
match: /animate:\i/,52
replace: "animate:!0"53
}54
},55
{56
// Gradient roles in member list57
find: 039;="left",className:039;,58
replacement: {59
match: /,animateGradient:/,60
replace: ",animateGradient:!0,_oldAnimateGradient:"61
}62
},63
{64
// Nameplates65
find: ".MINI_PREVIEW,[",66
replacement: {67
match: /animate:\i,loop:/,68
replace: "animate:true,loop:true,_loop:"69
}70
}71
]72
});73