Skip to content

Configurations

Kenneth edited this page Jan 9, 2018 · 38 revisions

General Notes

For fields with nil, they will not be shown in the .json file. If you need to specify value in the field, add the field name followed by the value.

General - Storage

Configures how data on players are stored. Webserver option is not implemented yet.

JSON File

The default json configuration for the storage used in the mod should look like this

Storage = {
    Mode = "Files",
    Files = {
        Directory = "config://shine/shinecredits/"
    },
    WebServer = {
        Host = nil,
        Method = nil,
        Password = nil
    },
    Models = {
        Badges = {
            Enabled = true,
            FileName = "ShineCredits_PlayerBadges.json",
            MaxBadgeRows = 8
        },
        Credits = {
            Enabled = true,
            FileName = "ShineCredits_PlayerCredits.json"
        },
        Levels = {
            Enabled = true,
            FileName = "ShineCredits_PlayerLevels.json"
        }
    },
    RedemptionMenus = {
        BadgesMenu = {
            Enabled = true,
            FileName = "ShineCredits_BadgesMenu.json"
        }
    },
}

Descriptions

Storage

  • Mode: Specify which mode of storage will the system be utilising.

  • Files:
    • Directory: Specify the directory where the files will be stored in.

  • WebServer: Not implemented yet.

  • Models: Models are files that are shared by multiple subsystems. It is dissuaded to disable these dependencies.
    • Badges
      • FileName: The filename whereby players' badges are mirrored from UserConfig.json and stored.
      • MaxBadgeRows: The maximum number of badge rows.
    • Credits
      • FileName: The filename whereby players' credits are stored
    • Levels
      • FileName: The filename whereby players' levels are stored

Controller - CreditsAwarding

JSON File

The default json config for the credits awarding system should look like this

CreditsAwarding = {
    Enabled = true,
    ConfigDebug = true,
    Player = {
        Enabled = true,
        CreditsFormula = {
            MaximumAwardedPerRound = 500,
            Formula = {
                Time = {
                    CreditsPerMinute = 1
                },
                Score = {
                    CreditsPerScore = 0.1,
                    CreditsPerKill = 1,
                    CreditsPerAssist = 0.5
                },
                Multipliers = {
                    Victory = 1.2
                }
            }
        },
        Notifications = {
            CreditsAwarded = "%s credits awarded!"
        }
    },
    Permissions = {
        SuspendCreditsForGroups = {}
    },
    Commands = {
        SetCredits = {Console  = "sh_setcredits", Chat = "setcredits"},
        ViewCredits = {Console  = "sh_viewcredits", Chat = "viewcredits"},
        AddCredits = {Console  = "sh_addcredits", Chat = "addcredit"}
    }
}

Description

Controller - Leveling

JSON File

The default json config for the player leveling system should look like this

Levelling = {
    Enabled = true,
    ConfigDebug = true,
    Player = {
        Enabled = true,
        XPFormula = {
            MaximumAwardedPerRound = 500,
            Formula = {
                Credits = false,
                Time = {
                    XPPerMinute = 1
                },
                Score = {
                    XPPerScore = 0.1,
                    XPPerKill = 1,
                    XPPerAssist = 0.5
                },
                Multipliers = {
                    Victory = 1.2
                }
            }
        },
        NextLevelFormula = {
            MaximumLevel = 55,
            Formula = "x^1"
        },
        Badges = {
            Enabled = true,
            BadgeRow = 1,
            BadgesOrder = {
                LevelBadgeNamePrefix = "level",
                LevelBadgeNameSuffix = "",
            },
            CustomBadgesOrder = {}
        },
        Notifications = {
            LevelChange = "Player level increased to level %s!" ..
                " (badge will be refreshed when map changes)"
        }
    },
    Commander = {
        Enabled = true,
        XPFormula = {
            MaximumAwardedPerRound = 5,
            Formula = {
                Credits = false,
                Time = {
                    XPPerMinute = 1
                },
                Multipliers = {
                    Victory = 1.2
                }
            }
        },
        NextLevelFormula = {
            MaximumLevel = 5,
            Formula = "x^1"
        },
        Badges = {
            Enabled = true,
            BadgeRow = 2,
            BadgesOrder = {
                LevelBadgeNamePrefix = "",
                LevelBadgeNameSuffix = "",
            },
            CustomBadgesOrder = {"bay_supporter","bay_silver",
                "bay_red","bay_platinum","bay_gold"}
        },
        Notifications = {
            LevelChange = "Commander level increased to level %s!" ..
                " (badge will be refreshed when map changes)"
        }
    },
    Permissions = {
        SuspendLevelingForGroups = {}
    },
    Commands = {
        SetXP = {Console  = "sh_setxp", Chat = "setxp"},
        ViewXP = {Console  = "sh_viewxp", Chat = "viewxp"},
        AddXP = {Console  = "sh_addxp", Chat = "addxp"}
    }
}

Description

General

ConfigDebug: Specify if configuration file should be checked prior to initialisation. Set false for increased performance

Player

XPFormula

  • MaximumAwardedPerRound: Specify the maximum player XP can a player earned in a round. Used for balancing purposes.
  • Formula
    • Credits Indicate if player XP should be drawn from players' total credits. Used when XP will be following the formula used to award credits.
    • Time
      • XPPerMinute: Specify how much player XP is awarded per minute of playtime.
    • Score
      • XPPerScore: Specify how much player XP is awarded per score earned.
      • XPPerKill: Specify how much player XP is awarded per kill.
      • XPPerAssist: Specify how much player XP is awarded per assist.
    • Multipliers
      • Victory: Specify how much the players' player XP are multiplied if their team is victorious. Set value to be 1 to give no bonus credits for victory.

NextLevelFormula

  • MaximumLevel: Designate the maximum player level a player can attain. Corresponds with the number of badges used to represent each levels.
  • Formula: Specify the mathematical formula used to determine the XP required for the next level. Use x to represent the level in question. For example: "x^2" - level 1 requires 1^2 = 1 XP, level 2 requires 2^2 = 4 XP so on and so forth.

Badges

  • BadgeRow: Specifies the row where the player level badge will be inserted at.
  • BadgeOrder:
    • LevelBadgeNamePrefix: String that precedes the level number
      Example - "level" would mean the badge name is "level1" for level 1 badge
      Leave nil to not use prefixes
    • LevelBadgeNameSuffix: String that follows the level number
      Example - "level" would mean the badge name is "1level" for level 1 badge._
      Leave nil to not use suffixes
    • CustomRankOrder: Specify the badges used in the order of
      Example - {"heart", "weed", ... , "unicorn"}, where the leftmost badge is for level 1
      Leave nil to use the sequence generated using the parameters

Notifications

  • LevelChange: Specify the message to be shown to the player when their player level increases

Commander

XPFormula

  • MaximumAwardedPerRound: Specify the maximum commander XP can a player earned in a round. Used for balancing purposes.
  • Formula
    • Credits Indicate if commander XP should be drawn from players' total credits. Used when commander XP will be following the formula used to award credits.
    • Time
      • XPPerMinute: Specify how much commander XP is awarded per minute of playtime.
    • Multipliers
      • Victory: Specify how much the players' commander XP are multiplied if their team is victorious. Set value to be 1 to give no bonus credits for victory.

NextLevelFormula

  • MaximumLevel: Designate the maximum commander level a player can attain. Corresponds with the number of badges used to represent each levels.
  • Formula: Specify the mathematical formula used to determine the commander XP required for the next level. Use x to represent the level in question. For example: "x^2" - level 1 requires 1^2 = 1 XP, level 2 requires 2^2 = 4 XP so on and so forth.

Badges

  • BadgeRow: Specifies the row where the commander level badge will be inserted at.
  • BadgeOrder:
    • LevelBadgeNamePrefix: String that precedes the level number
      Example - "level" would mean the badge name is "level1" for level 1 badge
      Leave nil to not use prefixes
    • LevelBadgeNameSuffix: String that follows the level number
      Example - "level" would mean the badge name is "1level" for level 1 badge._
      Leave nil to not use suffixes
    • CustomRankOrder: Specify the badges used in the order of
      Example - {"heart", "weed", ... , "unicorn"}, where the leftmost badge is for level 1
      Leave nil to use the sequence generated using the parameters

Notifications

  • LevelChange: Specify the message to be shown to the player when their commander level increases

Permissions

  • SuspendLevelingForGroup: Specify groups where players in the group are suspended from leveling. Set nil to disable

Utility - Notification

JSON File

The default json config for the notification system should look like this

Notification =
{
        Enabled = true,
        Message = {
            Default = "",
            MessageRGB = {255,255,255}
        },
        Sender = {
            DefaultName = "[Shine Credits]",
            NameRGB = {255,20,30}
        }

    }
}

Description

Message

  • Default: The default text to display in any message
  • MessageRGB: The default color of any chat message sent (Values are in {Red,Green,Blue})

Sender

  • DefaultName The default name of the sender of any chat message sent. Used to identify the mod owner.
  • NameRGB: The default color of the name of the sender (Values are in {Red,Green,Blue})