#[DISCORD BOT] Luci-bot feature changes / requests

1 messages · Page 1 of 1 (latest)

noble dock
#

Hey! We don't really have any designated place for sharing feedback relating to @north horizonand its features so I've opened this post for this purpose.

What type of stuff can I post here?

  • any feature requests / ideas that you would like to see @north horizonto support
  • if you run into any errors / bugs can post those here

Upcoming content

  • We'll be looking to add daily credits to @north horizon

This will mean you can claim them using a /claim command
We'll be adding a shop later as well, these will be to add unique functionality. Some example shop things would be:

  • see general log info last 7d (messages sent, messages deleted/edited, reactions added/removed)
  • report a message to staff if it violates server rules
  • add your favourite settings to your /user_info (or /profile potentially)
  • see your claim history
  • will also be adding a premium setting for this (if you have premium role you will have the option to enable "auto-claim on message") so you can claim your daily credits by sending a message in the server

As to why we'll be adding this, there's a lot of things that we could add but it can be difficult to navigate through so many features. Instead we'll be adding the option to buy those for daily credits and gradually showcase new features. You'll also have the option to toggle these new features on / off once owned too.

Current commands

Public use

  • /changelog
  • view android changelogs for RISK
  • this will often be 1 or 2 updates behind as I just have this saved directly on bot files as a JSON file (so won't be updated unless the bot is being updated)
  • (only visible to you)
  • /risk_idea
  • post an idea for the developers into #risk_ideas channel
  • can see end result in #risk_ideas
  • includes a copy of your suggested idea if command is on cooldown so you can copy it to send later
  • (visible to everyone when posted)
  • /userid
  • see your user ID or that of other members
  • (only visible to you)
  • /user_info
  • see additional info about a member, such as join date, avatars & names, with some dynamic things like "if boosting" or "if timed out" or "if Staff role"
  • (only visible to you)
  • /credits
  • claim daily credits
  • (only visible to you)
  • /looking_for_game
  • set up a game lobby in a pretty embed

Staff use

  • /role_add | /role_remove
  • event command, add/remove event roles without manage roles permission
  • (only visible to you)
  • /role_clear
  • staff command, remove all members from an event role
  • (only visible to you)
  • /create_threads
  • moderator command, create event threads en-masse
  • /risk_idea_fix_reactions
  • staff command, try to add any missing reactions to a risk idea in case any are not listed

SMG restricted

  • /export
  • export risk ideas from a specified messageURL for developers (posts to a channel as a CSV)

Owner restricted

  • /settings
  • sync commands in server with bots files in event of any changes

Excluded content

  • log based data (restricted)
heady nova
#

open source when

noble dock
# heady nova open source when

No intention of open sourcing - the main reason for that is the bot is not designed to be a public bot.

A public bot will have classes & handlers, using a database for stored values that server staff have assigned, so things like:

  • auto moderation settings
  • role / channel / user / server IDs
  • logging data
    All of these are hard coded into the bot, this means that non-public IDs & potential exploits to things could be abused if these were open sourced.

Additionally, open sourcing requires setting up & maintaining documentation, keeping it all up to date - I tend to have 20+ half written sections and little reminders for myself on things I want to do later that are commented out but in places I'd be adding to later. Would have to be removing these to open source it as well, also not ideal - too big of a time drain to do so 😄

steep marlin
noble dock
# steep marlin Any plans to improve the bot? Particularily relating to capitals and zombies?

I'm not sure if you may be mixing up RISK ai with @north horizon (Luci-bot is our resident bot for posting ideas to #risk_ideas , creating threads for events, viewing /changelog & /user_info etc)

I don't have access for things like the dice algorithm to apply it to the bot (I might see if it's possible in future though, so you can simulate results, and get exact probabilities for battles)

At the moment the main focus will be with a discord-focused /credits command to claim daily credits - which can then be used to access "upgraded info" with the bot.
Additionally staff team have asked if we can implement the trialed looking for game command, so I'll be adding that shortly - only other thing may be improved logging but these aren't shared publicly.

Including a couple of screenshots as examples for the LFG command

steep marlin
# noble dock I'm not sure if you may be mixing up RISK ai with <@1102362534608117790> (Luci-b...

I was refferring to the in-game AI.
It doesn't protect it's capitals, nor does it recognize Capitals as a defensive structure(it will throw a 12 stack against a 10 stack capital) and likewise, it tries to card block zombies, at the expense of losing it's own continents.
Also, in general it just doesn't plan ahead. Once you get a sense of how the bot works, it is extremely easy to predict and manipulate.
For example; if it can cardblock, it will. It doesn't take into account which players are the most powerful, which I think it should. Overall, as a video game AI opponent, it's fairly poor.

steep marlin
noble dock
#

[DISCORD BOT] Luci-bot feature changes / requests

#

Updated name / hopefully provides clarity for first time readers general_dab 👍

heady nova
#

or just as the primary image below the embed

noble dock
heady nova
#

I think the primary image below the embed looks visually better

#

And if they don't use a map name from autocomplete just send them an ephemeral error message

noble dock
#

Nah I need to allow non-preset map names - I won't always be able to update the bot alongside new maps being available, so need to let players manually enter the map names in the event it isn't in the list

heady nova
#

Then yeah you could just not include the attachment

noble dock
#

@north horizon v0.6.0 is now live

noble dock
#

Open question in general - if you have any suggestions on how you'd like to see /credits (daily credits) used - feel free to suggest here!

The main notes for now are:

  • to integrate with a database
  • credits will be updated to daily credits
  • with the addition of weekly, monthly and yearly credits
  • credits balances will be updated to ½ of what they'd currently be (1 per day) - with 1 weekly per completed week, 1 monthly per completed month and so on.

The primary goal for credits use will be to amplify / improve current existing features in @north horizon , such as custom embed colour for risk ideas posts / looking for game posts, save LFG presets to copy & paste or send to channel, view credit claim history (improving the /credits command to including by default), with consideration for new features, such as temperature converter, timestamp creator, DM reminders/Todo lists, and so on.

noble dock
#

----------

I was wondering about adding some features to the /credits functionality, specifically to make it easier to claim credits.

current planned changes

  • trial switch to utilising database for credits
  • update current claimed credits to daily credits
  • this will include dividing credits by 2, so 1 day = 1 daily credit.
  • this will include checking all claimed dates to retroactively apply weekly and monthly credits (no yearly ones needed yet, but will add that too)

Ideas I'd like feedback on!

Idea One
Adding /credits shop command and it's first intended item:
tiered purchase progression for claiming automation

  • Item one: costing 1 weekly credit to unlock
  • on_message daily reminder - the first message you send in the server per UTC day, you receive a reminder from the bot to use the /credits claim command
  • Item two: costing 1 monthly credit to unlock
  • on_message auto-claim - the first message you send in the server for UTC day will automatically claim your daily credits
  • Item three: costing 1 yearly credit to unlock
  • on_presence_udpate auto-claim - when you go from offline -> any status, credits are automatically claimed

Idea Two
Second shop item: add recent log statistics to /user_info command

  • Item one: costing 1 weekly credit
  • view aggregated statistics on discord events when using the command for yourself (e.g `message edits, message deletes) for the last 24 hours
  • Item two: costing 2 weekly credits
  • view aggregated statistics for anyone in the last 24 hours
  • Item three: costing 3 weekly credits
  • view aggregated stats for more timeframes (1h, 1d, 1 week, 1 month

Idea 3
Third shop item: customise embed colour for commands you use and your user info page

  • Item 1: 1 daily credit
  • update embed colour from a general list of colours (Red, Green, Yellow, Blue, Orange, Purple)
  • Item 2: 3 daily credits
  • enter any hex code for your embed colour
  • Item 3: 7 daily credits
  • pick a selection of hex codes for your embed colours OR use the random format, which picks between X colours (not sure how many it picks, but I think it's limited)

The general idea is to:
a) improve claiming to be less manual (and easier to remember / be reminded about)
b) improve existing commands to include more data
c) customise your experience with the bot to be a bit more personal

noble dock
#

Didn't have a credits thread so kinda hijacking my old post for it 😄

I think I'm going to add in some additional credit types, specifically seasonal credits, this'll mean that we'd have:

  • discontinued "credits"
  • being replaced by day/week/month/year
  • standard claim intervals
  • daily
  • weekly
  • monthly
  • yearly
  • seasonal claim intervals (daily, during each of the 4 seasons)
  • spring 🌱
  • summer ☀️
  • autumn 🍁
  • winter ❄️
    For the actual timeframes, I'd just be using these I think (unless good basis for using other date ranges? This was from Google / screenshot attached)

So for retroactively (applying these for previous timeframes too), they'd start from Spring 2024 onwards

In practice, this would mean during a day in Spring (e.g. March 4th) you'd get:

  • daily credit for claiming that day
  • would also count towards week/month/year
  • additional Spring credit for claiming that day
    Effectively adding seasonal-specific currency.

For how these would actually be used;

  • seasonal items would only be claimable during that season
  • this acts as a reoccurring limited time each year that you could get things from that.

What I'm not sure on;

  • what items would be good as seasonal shop items?
  • for the whole credits system, would you prefer spending credits balance (and having a lifetime credits claimed value) - or just meeting a minimum threshold for gaining access to new things?
  • route 1: (has 20 spring credits) buy 2024 spring embed colours for 15 spring credits, leaving you with 5 left in balance (and 20 lifetime)
  • route 2: (has 20 spring credits) unlock 2024 spring embed colours at 15 spring credits, spring credits remain at 20

What I've got working so far (note, that these are unreleased);

  • daily, weekly, monthly & yearly credits claiming is fully setup
  • I use a "claim streak" in bot internally to check if week/month/year values are obtained, accounting for leap years for yearly and February (bit more annoying than you'd think!) - using a counter is a bit better than checking the individual days, as I only need to check against current claim and last claim to decide if streak is kept or reset - instead of having to fetch 366 previous claims each year

What I'm working on;

  • introducing the behaviour for retroactively applying previous credit claims to new credits
  • mostly done already, but need to test run it without modifying stuff to make sure it works correctly
  • transferring credits to a database
  • will keep discord as fallback anyway, but faster lookup times etc for storing in dB
  • currently blocked due to legal documents to be written (terms of service & privacy policy)

What I'm thinking about;

  • shop transactions consuming currency or requiring minimum currency
  • transactional lock on credit changes to prevent multiple credit claims through different routes (necessary for when adding buttons while still keeping command etc)
  • what sort of upgrades would be nice to have
  • have some ideas listed in post above (and a few since) but would be good to have new suggestions too (e.g. spring / summer / autumn / winter roles obtained through that shop - nice role icon for it / whatever)
noble dock
#

///

visual bridge
#

ugh so much reading

#

🤣

crisp kestrel
#

Here are my suggestions. The seasonal shop could feature exclusive rewards like themed cosmetic roles, seasonal badges, profile decorations, unlockable emojis or stickers. Also efficient with a hybrid spending model, (direct purchases with milestone based unlocks), help encourage casual and originally active users. Dynamic goals for example, “Claim 30 Spring Credits in March for a special badge”, it would feature leaderboards and a credit decay system for economic balance.

#

Transitioning to a robust database, (PostgreSQL or MongoDB), faster data retrieval understanding constraints 🙂 . Tying claims for unique Discord IDs. Implementing atomic operations or locking mechanisms would prevent duplicate claims while retaining Discord logs. Rotating shop items annually with a legacy type section for past exclusives. General changes or adjustments could be offering a clear Terms of Service, a Privacy Policy, and user accessible claim histories. I do have work to do right now so here is my take, i will have more later.

winter hull
#

Also adding longest messages ever snet and longest messages ever snet in thread cuz i may need to agree with tacocat for once

winter hull
#

You should give evrryone extra credits cuz its new years now too

#

double

noble dock
#

Ah something I thought of earlier was that the functionality of credits is pretty universal..

As an example, I could use the same exact function but use different data to provide the "datetime" objects, stuff like,
reactions
messages
attachments

So, it'd be feasible to for example have;

  • #risk_chat credits
  • Message credits (raw count, daily, weekly, monthly, yearly, streak)
  • Reactions given credits (raw count, raw message_count, daily, weekly, monthly, yearly, streak)
  • Reactions received credits (same as above but reactions people have added to your messages)
  • #risk_strategy credits
    And so on

But yeah database for sure for these.

I'll be using postgresql as the database, still trying out queries & transactions etc
Achievements/milestones something I was looking at, I'm a little hesitant just now with it because I'd need to have two separate groups for them (achievements being one off, milestones being progressive with multiple levels) - and actually displaying them in a user friendly way is quite challenging.

So I'd have to pick between having folders or having an endlessly paginated list (and need a way to sort them, filter them, and so on)

#

----

Since the credits claiming is effectively just:

  1. userid
  2. timestamp
  3. only processing is checking timestamp day is unique for calculating the credits themselves
    It is more like a utility function than anything, so being able to use it for who knows how many other things leaves a lot of room for expanding on
#

This was a really really cool feature to see, total emoji uses in a server
(1M uses!)

I'll need to have a think about stats / displaying that sorta stuff

crisp kestrel
#

When a user adds a reaction, should verify if they’ve already reacted to the message. If they have, the new reaction can be immediately removed, leaving only their original reaction intact. Single valid reaction, for keeping the logs clean and keeping integrity of the leaderboard.

#

I am referring to this because it happened in general ^^.

crisp kestrel
winter hull
#

@crisp kestrel Your the one who spammed it and your trying to cover it up 👀

noble dock
#

For total emoji use it wouldn't really matter - and if using the same credits behaviour with it, you'd just have 1 reaction count per UTC day too anyway

noble dock
visual bridge
#

gambling
gambling
gambling
perfect for gambling

noble dock
visual bridge
#

dang

noble dock
#

you could argue that the chance based stuff can maybe fill the "gambling void" - but gambling itself couldn't be added

noble dock
#

Found a bug in credit claim;

current behaviour:

  • check if month is December
  • check if it's a leap year or not
  • check if streak >= days in year

intended behaviour:

  • check if month is December
  • check if it's a leap year or not
  • check if monthly credit is being claimed
  • check if streak >= days in year

this would only affect anyone that is claiming in December, and already on >= 365 daily streak - which is currently no-one.

Will have fixed in next version 🙏