MortuusVivensX's Wishlist
-
Abandoned Bases
Allows bases to become raidable when all players in a base become inactive.
Compatible with TruePVE and NextGenPVE servers. This plugin is not compatible with servers that have server.pve set true. It is possible to implement this, but I see no reason to do so as TruePVE provides the same protection and more.
Abandoned Bases checks each building on the server in order to determine which bases are inactive. Bases become inactive when all players authorized on the tool cupboard have been offline for the configured amount of days. When a base becomes inactive there are one of two outcomes.
1.) It will be immediately destroyed if it does not meet the configured minimum requirements.
2) It will become raidable for a configurable period of time, and when the time expires the base will be destroyed.
Each zone has a map marker, allows PVP and is surrounded by a dome that protects it from being attacked from the outside. Players who zone hop will be flagged with a PVP delay where they can still be attacked for a configurable amount of time.
Command /sar - requires abandonedbases.convert permission and converts a base into an abandoned base - this can be used on any base that you are authorized to and will cause the base to be destroyed when the timer expires
Command /sab - starts a manual check for each building on the server in order to determine which bases are inactive (requires abandonedbases.admin permission)
Command /sar radius - requires abandonedbases.convert permission and converts a base into an abandoned base and uses the specified radius for the dome / zone radius. Min and max radius are configurable.
Command /sar cancel - requires abandonedbases.convert and abandonedbases.convert.cancel permissions - completely cancels an event (destroys map marker and dome, disables PVP and prevents base from being despawned) effectively allowing the base to be taken over
Command /sar claim - requires abandonedbases.convert and abandonedbases.convert.claim permissions and converts a finished abandoned base into a claimed base that can be taken over by players
Command /sar purge - converts all bases on the server into abandoned bases for purge day (requires abandonedbases.convert, abandonedbases.admin and abandonedbases.purgeday permissions)
This is a two part command that requires you type /sab afterwards to begin. Requires abandonedbases.purgeday, abandonedbases.convert, and abandonedbases.admin permissions. Announcements are muted during purge to prevent spam. Time To Wait Between Spawns (15) will delay how quickly every base is converted Permissions (ADMINS REQUIRE PERMISSIONS TOO)
abandonedbases.convert - required to use /sar command
abandonedbases.convert.free - converting is free for users that have this permission
abandonedbases.convert.claim - required to use /sar claim command
abandonedbases.purgeday - required to use /sar purge command
abandonedbases.admin - required to use /sab and purge commands
abandonedbases.notices - users with this command can see event-opened notices from the plugin
abandonedbases.attack - lets players hunt bases and convert them by attacking if they're abandoned
abandonedbases.attack.time - shows players how much time is left before a base becomes abandoned when they attack it
abandonedbases.attack.lastseen - required to see the last time the player was online when attacking a base
Auto-add abandonedbases.immune to configuration if one does not exist already (lifetime set to "none")
- abandonedbases.immune will not be automatically added if the configuration contains a different immunity permission already
- abandonedbases.immune will give the user immunity to any base they've built at or are authed at from becoming abandoned
- abandonedbases.exclude does not provide immunity and is explicitly intended for the plugin to ignore the player only
- abandonedbases.exclude is intended for admins, mods, staff or helpers to be able to freely make repairs or auth at bases without interfering with the abandoned timer
abandonedbases.exclude:
excludes the user from being checked as an authorized user to a TC this permission should not be used to exempt users - exempt users with immunity by assigning them a permission from a role that has the lifetime set to "none" example roles that includes permission abandonedbases.immune and lifetime set to "none" to properly exempt a user or group by granting abandonedbases.immune to a user or group:
"Purge Settings": [ { "Permission": "abandonedbases.immune", "Lifetime (Days)": "none" }, { "Permission": "abandonedbases.vip", "Lifetime (Days)": "7" }, { "Permission": "abandonedbases.veteran", "Lifetime (Days)": "5" }, { "Permission": "abandonedbases.basic", "Lifetime (Days)": "3" } ], Purge Settings
Permission - The permission to use with this setting Lifetime (Days) - The amount of time in days before a base is considered abandoned. Set to none to not consider players with this permission as inactive. Conversions Before Destroying Base (1) - The amount of times a base can become abandoned before it is finally destroyed when the Despawn Timer expires. Comes with 3 configured permissions and lifetime days by default Abandoned Settings
Blacklisted Commands (command1, command2, command3) - Commands players are not allowed using at a raid or marked with PVP delay Marker Name (Minutes) (Abandoned Player Base [{time}m]) - Text shown on map marker for minutes Marker Name (Seconds) (Abandoned Player Base [{time}s]) - Text shown on map marker for seconds Foundations Required (4) - Minimum amount of foundations required to become raidable Walls Required (3) - Minimum amount of walls required to become raidable Sphere Amount (10) - Increase to darken the dome, or decrease to brighten it Sphere Radius (50) - How big the dome is in meters Use Dynamic Sphere Radius (false) - Allow the dome to detect the best dome size Max Dynamic Radius (75.0) - How maximum size of the dynamic radius Min Custom Sphere Radius - The minimum radius allowed when using /sar <radius> Max Custom Sphere Radius - The maximum radius allowed when using /sar <radius> PVP Delay (15.0) - The amount of time in seconds that players can take damage after leaving the dome Despawn Timer (1800.0) - The amount of time in seconds that players have to finish the raid Reset Despawn Timer When Base Is Attacked (true) - When enabled this will reset the above despawn timer back to 1800 seconds by default Do Not Destroy Base When Despawn Timer Expires (false) - Use this to override and prevent a base from being destroyed when Despawn Timer expires Backpacks Can Be Opened (true) - When enabled players will be allowed to open their backpacks while inside of the dome Backpacks Can Be Looted By Anyone (false) - Bypass PreventLooting plugin and allow backpacks to be lootable if enabled Corpses Can Be Looted By Anyone (true) - Bypass PreventLooting plugin and allow backpacks to be lootable if enabled Allow PVP (true) - Allows PVP while inside of the dome, and when flagged with a PVP delay Seconds Until Despawn After Looting (600) Seconds Until Despawn After Looting Resets When Damaged (true) Cancel Automated Events If Abandoned Owner Comes Online (false) Message Raiders When Event Ends During Automated Cancellation (true) Change Marker Color On First Entity Destroyed (true) Cooldown Between Conversions (3600) - Time required between each manual conversion of a base using /sar Cooldown Between Events (3600) - Time between each event - prevents looting, damage and using /sar claim Cooldown Between Cancel (3600) - Time the player must wait to use /sar cancel Cooldown Between Conversions Ignored During Purge (true) Cooldown Between Cancel Ignored During Purge (true) Cooldown Between Events Ignored During Purge (true) Prevent Hogging Ignored During Purge (false) Run Once On Server Startup (false) - Check for abandoned bases immediately after server startup is complete Run Every X Seconds (0.0) - The time in seconds to check for each building on the server in order to determine which bases are inactive Kill Inactive Sleepers (false) - When enabled players with a permission from purge settings will be executed when they are offline for the configured amount of lifetime days Let Players Kill Abandoned Sleepers (false) - Allows players to kill anyone sleeping inside of an abandoned base rather than the server killing them automatically Economics/ServerRewards Cost To Manually Convert (0 = disabled) - Used with /sar command to convert any base into an abandoned base Use Map Marker (true) Require Event Be Finished Before It Can Be Canceled (true) Various auto turret settings
Hooks (implemented in 2.1.4)
participants - anyone that has actively participated (excludes admin if configured, and those in noclip or vanish) - this should not contain null elements
participantIds - contains the userid of all participants - this list is better as anyone offline and dead will be included in this but not in the participants list because they would be null!
intruders - anyone currently inside of the event (does not exclude anyone) - this should not contain null elements
intruderIds - contains the userid of everyone inside of the event (does not exclude anyone) - this list is better as anyone offline and dead will be included in the list but not in the intruders list because they would be null!
void OnPlayerPvpDelayStart(BasePlayer player, ulong userid, Vector3 eventPos, float radius, List<BasePlayer> intruders, List<ulong> intruderIds, List<BaseEntity> entities) void OnPlayerPvpDelayExpiredII(BasePlayer player, ulong userid, Vector3 eventPos, float radius, List<BasePlayer> intruders, List<ulong> intruderIds, List<BaseEntity> entities) void OnAbandonedBaseStarted(Vector3 eventPos, float radius, bool allowPVP, List<BasePlayer> participants, List<ulong> participantIds, List<BaseEntity> entities) void OnAbandonedBaseEnded(Vector3 eventPos, float radius, bool allowPVP, List<BasePlayer> participants, List<ulong> participantIds, List<BaseEntity> entities) void OnPlayerEnteredAbandonedBase(BasePlayer player, Vector3 eventPos, float radius, bool allowPVP, List<BasePlayer> intruders, List<ulong> intruderIds, List<BaseEntity> entities) void OnPlayerExitedAbandonedBase(BasePlayer player, Vector3 eventPos, float radius, bool allowPVP, List<BasePlayer> intruders, List<ulong> intruderIds, List<BaseEntity> entities) void OnAbandonedBaseDespawned(Vector3 eventPos, float radius, bool allowPVP, List<BasePlayer> intruders, List<ulong> intruderIds, List<BaseEntity> entities)
Convert Bases and/or Claim Bases
Credits:
misticos for giving permission to use some of his code 🙂- #rust
- #rust plugin
- (and 6 more)
-
SkillTree: XP Event
By imthenewguy in Plugins
Skill Tree: XP Event is a plugin that creates an event that will randomly select a task, providing players with bonus XP for performing the task while the event is running.
Events are started automatically on interval (default every 30 minutes), and will select 1 of 38 tasks for the event. This could be chopping down trees, skinning animals, killing scientists or looting crates.
The plugin will also roll a random duration for the event to run for, and a random bonus to the XP (all of which is configurable).
Additional XP gained with this plugin will stack with xp bonuses from Skill Tree. The stacking works in the following order:
Default xp value is calculated. Skill Tree will check if Skill Tree: XP Event is loaded, and will ask for any bonuses if applicable Skill Tree continues on with its additional modifiers (other plugins, permission overrides, rested xp etc) This event will provide an incentive for players to engage with content on your server that they might otherwise avoid.
SkillTreeXPEvent.use - required for players to participate in the events.
SkillTreeXPEvent.admin - required to use the below commands if running them from player console.
Console command: startxpevent <optional: task>
Description: This command will manually start an XP event. If the task is not specified, it will roll the event randomly. Running this command resets the interval timer.
Console command: stopxpevent
Description: This command ends the current xp event.
Chat command: stemoveui
Description: Brings up an interface to reposition the UI.
NodeHit NodeHitFinal TreeHit TreeHitFinal SkinHit SkinHitFinal CollectWildEntities CollectWildBerries CollectWildHemp CollectWildPumpkin CollectWildPotato CollectWildCorn CollectMushrooms CollectOreNodes CollectGrownEntities CollectGrownBerries CollectGrownHemp CollectGrownCorn CollectGrownPotato CollectGrownPumpkin SkinWolfFinal SkinBearFinal SkinChickenFinal SkinBoarFinal SkinStagFinal SkinPolarBearFinal SkinTigerFinal SkinPantherFinal SkinCrocodileFinal CatchAnyFish KillScientist KillTunnelDweller KillUnderwaterDweller KillAnyAnimal KillBear KillStag KillBoar KillChicken KillWolf KillPolarBear KillTiger KillPanther KillCrocodile LootCrate BreakBarrel BreakRoadSign SwipeCard All
- #skilltree
- #event
-
(and 4 more)
Tagged with:
-
Cargo Plane Crash
Adds a cargo plane crash event to your server. The crash site is guarded by NPCs that patrol the area and can chase players.
You can also set up custom loot using the "SimpleLootTable" plugin.
Features:
Support for third-party plugins Great customization options in the config
Console commands:
callcargoplane - force the event to start callcargoplane {steamID} - the event will be reserved for one player crashcargoplane - force a cargo plane to crash cpc_stop - force the event to end
Chat commands(need admin privileges):
showcrashzone - displays the crash area setcrashzonecenter - set the center of the crash zone to where the player is callcargoplane - force the event to start crashcargoplane - force a cargo plane to crash cpc_stop - force the event to end cpc_add_crashzone - adds a new zone at the location where the player is, can be used if you use multiple zones(you can set the name and radius - /cpc_add_crashzone "name" "radius") Hooks:
void CargoPlaneCrashStarted() // called when the event starts
void CargoPlaneCrashCrashed() // called when a cargo plane crashes
void CargoPlaneCrashEnded() // called when the event ends
CargoPlaneCrash config:
{ "PVE mode (crates can only be looted by the player who first dealt damage to the NPC)": false, "Give event ownership to the owner's teammates if he is no longer the owner. Only if teammates are within the event radius (for PVE mode)": true, "Radius for event(for PVE mode)": 380, "Create a dome for PVE mode": false, "Dome transparency (the higher the value, the darker the dome, recommended 4)": 4, "Time after which the owner of the event will be deleted if he left the dome or left the server (for PVE mode)": 300, "Message when a player enters the event dome(only for PVE mode if there is a dome)": "You have entered the Cargo Plane Crash Event", "Message when the event owner leaves the event dome (only for PVE mode if there is a dome)": "Return to the event dome, otherwise after 300 seconds you will no longer be the owner of this event", "Do not allow other players into the event(only for PVE mode if there is a dome) Be careful, if the crash site is near the player's base and the player is not the owner of the event, he will be ejected from his base outside the dome": false, "Message when a player is ejected from the event dome(only for PVE mode if there is a dome)": "You cannot be here, you are not the owner of this event", "Allow admin to be in event dome (only for PVE mode if there is a dome)": true, "Triggering an event by timer (disable if you want to trigger the event only manually)": true, "Time to event start(in seconds)": 3600.0, "Random time to event start": false, "Minimum time to event start(in seconds)": 600, "Maximum time to event start(in seconds)": 10800, "CargoPlane speed(recommended 4 to 6)": 5.0, "Minimum amount of online players to trigger the event": 1, "Minimum crates amount(spawn after crash)": 1, "Maximum crates amount(spawn after crash)": 1, "Crate simple loot table name(plugin SimpleLootTable is required)": "", "Minimum number of items in a crate(plugin SimpleLootTable is required)": 0, "Maximum number of items in a crate(plugin SimpleLootTable is required)": 0, "Crates lifetime(in seconds). The crate will not be destroyed if it has been activated": 3600, "Crates timer(in seconds)": 900, "Remove crates after being looted by a player(in seconds)": 300, "Minimum airdrops amount(spawn after crash)": 1, "Maximum airdrops amount(spawn after crash)": 1, "Airdrop simple loot table name(plugin SimpleLootTable is required)": "", "Minimum number of items in an airdrop(plugin SimpleLootTable is required)": 0, "Maximum number of items in an airdrop(plugin SimpleLootTable is required)": 0, "Airdrops lifetime(in seconds)": 3600, "Fireballs amount(spawn after crash)": 5, "Passengers amount(spawn after crash)": 2, "Explosion marker on the map(spawn after crash)": true, "Explosion marker lifetime(in seconds)": 300, "Enable signal smoke(spawn after crash)": true, "Signal smoke lifetime(in seconds, max 214)": 214, "Map size(crash zone size), you can see the zone, use the chat command /showcrashzone": 4500.0, "Starting altitude, defaults to map size, can be increased if cargo plane hits high ground(no more than 10000 recommended)": 4500.0, "Crash zone center. Use chat command /setcrashzonecenter to set to player position. You can check crash zone center, use the chat command /showcrashzone": { "x": 0.0, "y": 0.0, "z": 0.0 }, "Use multiple zones": false, "Select a zone from the list sequentially(if false, then the crash zone will be chosen randomly)": false, "Zones list": [ { "name": "0", "radius": 300, "center": { "x": -300.0, "y": 0.0, "z": 0.0 } }, { "name": "1", "radius": 200, "center": { "x": 100.0, "y": 0.0, "z": 0.0 } } ], "Event message(if empty, no message will be displayed)": "CargoPlane event started", "Crash message(if empty, no message will be displayed)": "Cargo plane crashed", "Event end message(if empty, no message will be displayed)": "CargoPlaneCrash event ended", "Message about coordinates(will display the coordinates of the crash site. If empty, no message will be displayed)": "", "Kit name(you can use kits for passengers if you have Kits plugin)": "", "Passenger name": "Mister bot", "Use NPC prefab for passengers": false, "Minimum NPCs amount(spawn after crash)": 2, "Maximum NPCs amount(spawn after crash)": 2, "NPCs lifetime(in seconds)": 3600, "NPCs type(NPCs prefab, experimental setting, it is not known how the NPCs will behave) 0 - tunneldweller; 1 - underwaterdweller; 2 - excavator; 3 - full_any; 4 - lr300; 5 - mp5; 6 - pistol; 7 - shotgun; 8 - heavy; 9 - junkpile_pistol; 10 - oilrig; 11 - patrol; 12 - peacekeeper; 13 - roam; 14 - roamtethered; 15 - bandit_guard; 16 - cargo; 17 - cargo_turret_any; 18 - cargo_turret_lr300; 19 - ch47_gunner": 8, "NPCs health(0 - default)": 0, "NPCs damage multiplier": 1.0, "NPCs accuracy(the lower the value, the more accurate, 0 - maximum accuracy)": 2.0, "NPCs attack range": 75.0, "Radius of chasing the player(NPCs will chase the player as soon as he comes closer than the specified radius, must be no greater than the attack range)": 60.0, "Minimum distance to NPC damage": 75.0, "Message if the player attacks far away NPCs": "NPC is too far away, he doesn't take damage", "Kit for NPCs. The NPC will use the weapon that is in the first slot of the belt(requires Kits plugin)": "", "Default displayName for NPC(for SimpleKillFeed/DeathNotes plugin)": "Crashsite NPC", "List of displayNames for each NPC(for SimpleKillFeed/DeathNotes plugin)": [ "Crashsite NPC1", "Crashsite NPC2", "Crashsite NPC3" ], "Will NPCs attack zombies": true, "Remove NPC corpses": false, "Prohibit building near the crash site": false, "Building prohibition radius": 20.0, "How long construction is prohibited near the crash site(in seconds)": 1800, "Event marker on the map(spawn an event marker at the crash site)": false, "Display approximate end time of event on marker": false, "Event marker name": "Cargo plane crash site", "Event marker lifetime(in seconds)": 3600, "Event marker transparency(0-1)": 0.75, "Event marker radius": 0.5, "Event marker color.R(0-1)": 1.0, "Event marker color.G(0-1)": 0.0, "Event marker color.B(0-1)": 0.0, "Do not spawn crates and NPCs when a cargo plane falls under water (if the water depth is greater than)": 0.5, "Do not choose a crash site near monuments": false, "If possible, the crash site will not be chosen near player bases": true, "SteamID for chat message icon": 0, "Complete the event if all crates were destroyed after looting": false, "Use Notify plugin for messages": false, "Notify message type": 0 }- #event
- #cargoplane
- (and 18 more)
-
Admin Map
Admin Map is an innovative plugin for the game of Rust, designed to make server administration easier and improve the quality of the gaming experience. Focused on optimization and functionality, this plugin provides admins with the tools to effectively control players, minimizing the negative impact on the server and other participants.
Main features:
Interactive map with players: Admin Map provides server admins with a detailed and user-friendly map showing the positions of all players. This allows admins to easily monitor player activity and movements, and quickly detect suspicious activity. Large variety of different admin map layers:
- Marker,
- Text ,
- Sleeper,
- TC,
- Stash,
- Sleeping Bag Quick Commands on Players: The plugin allows admins to perform quick actions on players directly from the map. Send messages, punish or help players in real time, minimizing reaction time and increasing interaction efficiency. Minimal server load: One of the key features of Admin Map is its low server load. All processing takes place solely on the client side, which means that the plugin will not slow down the server or create additional delays for players. This makes it an ideal choice even for servers with high traffic. Ease of use: The plugin's intuitive user interface provides admins with easy access to functionality. Navigating the map, sending commands and monitoring players is done with minimal effort, making server administration easy. Customization: Admin Map provides admins with the option to customize the functionality to suit their needs. Scanning area, available commands, buttons, permissions and other options. Hardcore bypass: Admins will be able to access the map on servers with the hardcore game mode installed.
After permission is granted, it is necessary to rejoin the server Support in RUST+: You will be able to view players online on the map directly in your phone without going to the server! Admin Map is an innovative solution that combines convenience, functionality and optimization. It provides administrators with tools to effectively manage players without negatively impacting gameplay and other server participants. The Admin Map plugin is an essential asset for any Rust server administrator looking to create a comfortable and safe gaming environment.
Permissions:
adminmap.allow - for use adminmap and hardcore bypass adminmap.<button perm> - any permissions specified in the button settings adminmap.teleport2marker - teleportation by marker via CTRL+RMB adminmap.invis - hide player from the player map adminmap.rust+ - enable rust+ admin map adminmap.rust+.invis - hide from rust+ admin map (recommended in case of giving the map to players)
Commands:
/amap - show sidebar /amap off - disable everything and hide the sidebar
Color designations on the cupboards map:
Default Config:
{ "Auto show sidebar panel": true, "Open the admin menu instead of the action menu": false, "Text Map Settings": { "Font size": 8.0, "Use color generation for teams?": true, "Color for team": "ffaf4d", "Color for solo player": "9bd92f", "Color for sleeper": "404040" }, "Command Buttons": [ { "Permission (adminmap.<perm>)": "", "Label": "TP", "Command": "teleport {steamid}", "Color": "1 1 1 1" }, { "Permission (adminmap.<perm>)": "", "Label": "TP2ME", "Command": "teleport {steamid} {admin.steamid}", "Color": "1 1 1 1" }, { "Permission (adminmap.<perm>)": "", "Label": "INV", "Command": "/viewinv {username}", "Color": "1 1 1 1" }, { "Permission (adminmap.<perm>)": "", "Label": "SPECTATE", "Command": "spectate {steamid}", "Color": "1 1 1 1" }, { "Permission (adminmap.<perm>)": "", "Label": "KILL", "Command": "kill {steamid}", "Color": "0.9 0.1 0.25 1" }, { "Permission (adminmap.<perm>)": "", "Label": "KICK", "Command": "kick {steamid}", "Color": "0.9 0.1 0.25 1" }, { "Permission (adminmap.<perm>)": "", "Label": "SHOW\nTEAMMATES", "Command": "adminmap.cmd show_player_teammates {steamid}", "Color": "1 1 1 1" }, { "Permission (adminmap.<perm>)": "", "Label": "SHOW\nPRIVLIDGES", "Command": "adminmap.cmd show_player_privlidges {steamid}", "Color": "1 1 1 1" }, { "Permission (adminmap.<perm>)": "", "Label": "SHOW\nSLEEPING\nBAGS", "Command": "adminmap.cmd show_player_sleepingbags {steamid}", "Color": "1 1 1 1" }, { "Permission (adminmap.<perm>)": "", "Label": "SHOW\nSTASHES", "Command": "adminmap.cmd show_player_stashes {steamid}", "Color": "1 1 1 1" } ] }
Button Library:
Give item to player for AdminMenu by k1lly0u | Minimum required version 1.0.1 { "Permission (adminmap.<perm>)": "", "Label": "GIVE", "Command": "adminmenu.callback {steamid}.4;adminmenu.callback {steamid}.4", "Color": "1 1 1 1" } Permanent ban
{ "Permission (adminmap.<perm>)": "", "Label": "BAN", "Command": "ban {steamid}", "Color": "1 0 0 1" } View backpack (for Backpack Pro)
{ "Permission (adminmap.<perm>)": "", "Label": "Backpack", "Command": "/b {steamid}", "Color": "1 1 1 1" } View backpack (for Backpacks plugin from uMod)
{ "Permission (adminmap.<perm>)": "", "Label": "Backpack", "Command": "viewbackpack {steamid}", "Color": "1 1 1 1" } Spectate
{ "Permission (adminmap.<perm>)": "", "Label": "SPECTATE", "Command": "spectate {steamid}", "Color": "1 1 1 1" }
If you want to add buttons here, message me on my discord server
-
Hud Controller UI
Hud Controller is a very simple Hud system. It can do a ton of things, all listed below!
Why should you choose Hud Controller?
Having a unique server is very important when you choose to have a hud on your server, players see that 24/7.
So, you want a good-looking, unique hud menu that stands out to players.
With Hud Controller, you can do that, and much more, with ease.
FEATURES
- Built in UI editor - Add panels, change colors, change fonts, delete panels, change images, EVERYTHING IS EDITABLE! - Dynamic custom events - Normal rust events - Quick command buttons - Display RP or Economics - Display server time - Display player grid - Display players - ETC*
Text fields can accept the following placeholders
{serverName} {configServerName} {maxPlayers} {onlinePlayers} {joiningPlayers} {queuedPlayers} {totalPlayers} {playerGrid} {serverTime} {playerCurrency}
Support? Questions? Comments? Concerns?
Message me in my Discord! https://discord.gg/RVePam7pd7