Page 1 of 8 123 ... LastLast
Results 1 to 10 of 74
  1. #1
    Senior Member
    Join Date
    Oct 2015
    Location
    Germany
    Posts
    292

    VIP Slot Manager

    VIP Slot Manager 1.0.0.6 [BF3, BF4, BFH, BC2]


    Description


    This FREE Plugin gives you full control over reserved VIP Slots, with many customizations and features. It includes a time management control for each VIP player. This means you can add VIP players for a custom time period, whether it be 30 days, or longer. Expired VIP Slots will be disabled automatically. It is also possible to manage multiple Gameservers with one global list of VIPs or alternatively each Gamerserver separately with his own list of VIPs.

    The Plugin supports a web-based interface to manage a single Gameserver or many Gameservers with different VIP players. This means you can add, edit and remove VIP Slots via the admin website. It is highly recommended to use a website for administrative purposes!

    In addition, you can customize any in-game message based on player events. For example, a welcome message for valid VIPs only, such as '%player% your VIP Slot is still valid for: %time%'.

    NEW: The Aggressive Join detection keeps you informed if a NON-VIP player got kicked to make room for a VIP on full server. If the kicked player rejoins, the Plugin sends him a customized message.



    Installation


    IMPORTANT: This Plugin requires a MySQL database with INNODB support.

    1. Upload the VipSlotManager.cs file to your Procon Layer Server into the folder procon/Plugins/BF4 (procon/Plugins/BFHL OR procon/Plugins/BF3). Restart your Procon Layer.

    2. Start your Procon PC Tool. Open the VIP Slot Manager Plugin settings. In the settings, you will find the section '1. MySQL Details'. There simply enter your MySQL details (host IP, port, database, username, password).

    3. In the section '2. Main Settings', you can choose your 'Gameserver Type'.

    4. The 'Server Group' is an important setting, for when you have more than one Gameserver. If two or more Gameservers use the same MySQL database, then the VIP players are valid for all these Gameservers with the same 'Server Group' ID. You can change the ID in order to manage the VIPs for each Gameserver separately.

    5. Enable the Plugin.

    6. Install the website (optional): In the downloaded ZIP file you find a free website template for this job. Before you upload the website replace your SQL details (SQL Server IP, dbName, dbUser, dbPW) in the 'config.php' file. The default login (user, pw) after the installation: admin , admin

    After the first start the Plugin will connect to the MySQL database to automatically create the tables for the Plugin. After the table is created, it will sync all VIP players from the Gameserver to the MySQL database. All the imported VIP players will get a valid VIP Slot for 30 days by the default settings 'Import NEW VIPS from Gameserver to SQL' = yes (30 days first Plugin installation only). This means that all your VIPs will stay within the SQL database and on your Gameserver! This setting will be changed after the first Sync/Import is completed successfully.



    Website (highly recommended)


    The easiest way to manage reserved VIP Slots is a website with access to the MySQL database. In this way you can manage a single Gameserver or many Gameservers with different VIP players. It gives you full control. You can add, edit and remove VIP players via the website. After a few minutes, the Plugin on each Gameserver receives the updated information automatically and will do the rest.

    It is highly recommended to use a website for administrative purposes! You can find a free website template for this purpose within the downloaded ZIP file from this Plugin. It requires a webspace with PHP support and access to the SQL database.



    Sync Settings


    All VIP informations are stored within the SQL database, in addition to the VIP Slot remaining time for each VIP player. The Plugin updates the Gameserver with the valid VIP Slots. Expired VIP Slots will be removed automatically.


    Multiple Gameservers with one global list of VIPs (optional)
    The following Plugin settings are important to provide multiple Gameservers with one global list of VIPs. The settings 'MySQL details', 'Gameserver Type', 'Server Group', 'Import NEW VIPs from Gameserver to SQL', 'Notify Vip Slot Expiered', 'EA GUID Tracking' and 'Aggressive Join Abuse Protection' have to be exactly equal on all Gameservers. In addition, the setting 'Import NEW VIPs from Gameserver to SQL' must be set to 'no (remove)'. In this way the Plugin and the VIP Sync works perfect.


    Server Groups
    Based on the Plugin settings, ‘Gameserver Type' and 'Server Group', the VIPs are valid for one or more Gameserver. If two Gameservers use the same 'Server Group' ID, then the VIP players are valid for both Gameservers. You can change the 'Server Group' ID in order to manage the VIPs for each Gameserver separately.


    IMPORTANT: If two or more Gameservers use the same 'Server Group', then the Plugin setting 'Import NEW VIPs from Gameserver to SQL' must be set to 'no (remove)'.


    Sync Update Interval
    The Sync between the MySQL database and the Gameserver starts automatically every few minutes. You can change the Sync interval in the Plugin setting 'Sync Interval between SQL and Gameserver'.


    Advanced Import
    This feature is important for the first Plugin start and the first Sync to the SQL database. If the Plugin is found on the reserved slot list on the Gameserver a NEW VIP without an entry into the SQL database (or with the VIP status 'inactive / expired'), then you can configurate what the Plugin have to do with this NEW VIP. Based on the Plugin settings 'Import NEW VIPs from Gameserver to SQL' you can select the following options:

    • yes (first Plugin installation) - The new VIP player will be added to the SQL database. The new VIP will be activated and valid for the next 30 days. This default setting will be changed to 'no (remove)' after the first Sync/Import is completed successfully. This setting is recommended for the first Plugin start and the first Sync to the SQL database.
    • no (ignore) - The new VIP player will stay on the Gameserver without an entry in the SQL. It is not a valid VIP for the Plugin. The player will stay in the reserved slot list on the Gameserver. The player can not use VIP Commands.
    • no (remove) - The new VIP player will be removed from the Gameserver reserved slot list. This default setting is recommended after the Plugin configuration and the first Sync to SQL is completed successfully. This default setting is also required to enable the function 'EA GUID Tracking', the function 'Aggressive Join Abuse Protection' or if two or more Gameservers use the same 'Server Group' ID.
    • yes (as inactive) - The new VIP player will be added to the SQL database with the status 'inactive'. The player will be removed from the Gameserver. On the website with access to the SQL database, you can edit the VIP status to activate them.
    • yes (for 7/30/90/365 days) - The new VIP player will be added to the SQL database. The new VIP will be activated and valid for the next 30 days.
    • yes (permanent) - The new VIP player will be added to the SQL database. The new VIP will be activated and valid for the next 7 years (permanent).



    Manual Force Sync
    For a quick one time Sync you can use the 'Force Sync SQL and Gameserver NOW' function in the settings. The proconrulz.ini file will also be updated (if this feature is enabled).



    Notify & In-Game Messages


    You can enable, disable and customize every single in-game message based on chat and player events. OnJoin, OnSpawn and OnChat are trigger events.

    You do not have to use all the available textboxes for messages, leave it blank if you do not need it.

    The 'Replacement Strings' below are available for any message:

    REPLACEMENT STRING EFFEKT
    %player% Will be replaced by the playername
    %time% Will be replaced by the VIP Slot remaining time (for valid VIPs only)
    %total% Will be replaced by the total number of all valid VIPs on this server
    %online% Will be replaced by the number of online VIPs

    Sample Message:
    !VIP %player% valid for: %time%
    !VIPs online: %online%/%total%



    In-Game VIP Commands


    These commands are for valid VIP Slot players only. Each command can be enabled or disabled separately.

    IN-GAME VIP CMD EFFECT
    !lead take squad leader position
    !killme admin kill without death in scoreboard
    !switchme switch between teams



    In-Game Admin Commands


    These commands are for in-game admins only. Admins need the privilege 'Can Edit Reserved Slots List'. You can enable or disable this function in the setting 'Enable In-Game Admin Commands'.

    IMPORTANT: Requires the <full playername> - this is case sensitive!

    IN-GAME ADMIN CMD SAMPLE EFFECT
    !addvip <full playername> <days> !addvip SniperBen 30 This cmd adds and activates a player’s VIP status for the next 30 days. The time period of 30 days is fixed. When you enter this command more than once it has no effect on the time period.
    !addvip <full playername> +<days> !addvip SniperBen +7 This cmd checks the VIP player’s remaining time (e.g. the VIP Slot is still valid for 5 days). Then the Plugin ADDS 7 days to the 'old' time period. For example: old time period (5 days) + new time period (7 days) = total time period (12 days). Now the VIP Slot is valid for 12 days.
    !removevip <full playername> !removevip SniperBen This cmd will remove the VIP from the Gameserver. The player will stay in the SQL database and be marked as 'status inactive'.
    !checkvip <full playername> !checkvip SniperBen This cmd will display the remaining time
    !changevip <old playername> <new playername> !changevip SniperBen SniperBenni This cmd will change the VIP Slot playernames
    !addsemivip <full playername> !addsemivip SniperBen This cmd will add an Semi VIP Slot temporary (valid on current Gameserver till round end / player rejoin). The plugin setting 'Aggressive Join Abuse Protection' must be enabled to handle Semi VIPs.



    Other Plugin Support


    Other Plugins such as ProconRulz/InsaneLimits can use special commands to remove or add a VIP Slot for a custom time period. Other Plugins can send commands as a 'hidden say' within the in-game chat. Other players will not see this in-game message, but the Plugin receives this information. In the Procon PC Tool you can enter the commands to (say, all players). You can enable or disable this function in the setting 'Enable Commands for other Plugins'.

    Commands (hidden admin say)

    CMD FOR OTHER PLUGINS SAMPLE EFFECT
    /vsm-addvip <full playername> <days> /vsm-addvip SniperBen 30 This cmd adds and activates a player’s VIP status for the next 30 days. The time period of 30 days is fixed. When you enter this command more than once it has no effect on the time period.
    /vsm-addvip <full playername> +<days> /vsm-addvip SniperBen +7 This cmd checks the VIP player’s remaining time (e.g. the VIP Slot is still valid for 5 days). Then the Plugin ADDS 7 days to the 'old' time period. For example: old time period (5 days) + new time period (7 days) = total time period (12 days). Now the VIP Slot is valid for 12 days.
    /vsm-removevip <full playername> /vsm-removevip SniperBen This cmd will remove the VIP from the Gameserver. The player will stay in the SQL database and be marked as 'status inactive'.
    /vsm-changevip <old playername> <new playername> /vsm-changevip SniperBen SniperBenni This cmd will change the VIP Slot playernames
    /vsm-addsemivip <full playername> /vsm-addsemivip SniperBen This cmd will add an Semi VIP Slot temporary (valid on current Gameserver till round end / player rejoin). The plugin setting 'Aggressive Join Abuse Protection' must be enabled to handle Semi VIPs.


    Sample Code for ProconRulz (perform 5 knife kills = VIP Slot for 7 days):
    Code:
    On Kill; Damage Melee; if %c% == 5; Say /vsm-addvip %p% +7


    Advanced ProconRulz Support


    The VIP Slot Manager Plugin can store a list of valid VIPs in the proconrulz.ini file. This file stays on your Procon Layer Server (path: CONFIGS/proconrulz_<ip>_<port>.ini). When you read this file within the Plugin ProconRulz (%ini_vipslotmanager_<playername>%) you will get the VIP timestamp in seconds. This means you can check the VIP status without any player protection for weapon rule punishment (kill, kick, ban). You can enable or disable this function within the setting 'On Round End write VIPs in proconrulz.ini file'.

    For a quick one time update to the proconrulz.ini file you can use the 'Force Sync SQL and Gameserver NOW' function in the settings.

    IMPORTANT: Requires Read+Write file permission in the directory /configs/ on your Procon Layer.


    Sample Code for ProconRulz (in-game command '!check' returns the VIP player status):
    Code:
    On Say; Text !check; if %ini_vipslotmanager_%p%% != 0; Say Yes, you are a VIP
    On Say; Text !check; if %ini_vipslotmanager_%p%% == 0; Say No, you are NOT a VIP


    Aggressive Join for VIPs


    The 'Aggressive Join' is a server setting that allows VIPs to join a full server without waiting. A random NON-VIP player will be kicked to make room for a VIP.

    The Plugin can detect this kind of kick and keeps you informed if a NON-VIP player got kicked to make room for a VIP on full server. If the kicked player rejoins, the Plugin sends him a customized message. You can enable, disable and customize this feature in the setting 'Private Message after NON-VIP got kicked and rejoins'.


    No Aggressive Join Close On Round End
    In addition, the Plugin can disable the 'Aggressive Join' close on round end to keep as many players as possible on the server. On the next round it will be enabled automatically. This feature works for the following game modes: ConquestLarge, ConquestSmall, TDM and Chainlink. You can enable or disable this function in the setting 'Temporary disable the Aggressive Join close on round end'.


    Aggressive Join Abuse Protection
    The function 'Aggressive Join Abuse Protection' is also helpful to track each VIP if he rejoins too many times with an 'Aggressive Join Kick' on full server. When a single VIP triggered is his max. threshold (custom setting value) of this kind of rejoins per round, then he can not rejoin again with 'Aggressive Join Kick' privilege till next round. In this case, if he rejoins again in the same round, then he can NOT bypass the server queue. He have to wait like normal players. While he is on the server, the Gameserver and all Plugins handles him as an valid VIP but without 'Aggressive Join Kick' privilege. All other VIPs can still join with 'Aggressive Join Kick' privilege. On next round he can join again with 'Aggressive Join Kick' privilege.



    Advanced Settings


    Debug Level
    1 - Errors will be displayed.
    2 - will also show log entries for added and removed VIP players.
    3 - will also show log entries when a VIP player joins the server.
    4 - will also show log entries when a player uses the in-game commands (e.g. !lead, !killme).
    5 - just for development and testing.


    Manual Force Sync
    For a quick one time Sync you can use the 'Force Sync SQL and Gameserver NOW' function in the settings. The proconrulz.ini file will also be updated (if this feature is enabled).


    Auto Database Cleaner
    This feature reduces the Sync traffic between SQL and Gameserver. It is necessary because the Sync is limited (max. 800 active/expired VIPs for each Server Group). Each Sync includes a list of valid VIPs and expired VIPs. Expired VIPs will get a notify message on the next spawn event. But if the player does not join the server for long time period (60 days by default setting), then this feature will remove him from the Sync in order to reduce the traffic. It changes the player status from 'expired' to 'inactive' and the player will not recives the expired VIP Slot message.

    In addition, old VIPs with the status 'inactive' will be deleted after 365 days automatically.


    VIP EA GUID Tracking (optional)
    If a VIP changes his playername then his VIP Slot will be updated to the new playername automatically. After a VIP joins the server, the Plugin links his playername to his EA GUID. If he joins again with a new/changed playername then his VIP Slot will be updated to the new playername for all Server Groups on current Gameserver Type in SQL database (e.g. for all BF4 Groups 1-99). After the VIP Slot has expired the EA GUID will be unlinked. You can enable or disable the tracking function in the setting 'EA GUID Tracking'.



    How to add, edit and remove VIPs


    Website (highly recommended)
    The easiest way to manage reserved VIP Slots is a website with access to the MySQL database. You can find a free website template in the downloaded ZIP file from this Plugin. It is highly recommended that you use it!


    In-Game Admin Commands
    As an in-game admin you can use the commands: !addvip, !checkvip, and !removevip for the current Gameserver (Server Group).


    Procon PC Tool
    In the Plugin settings you can use the 'Mini Manager - Print VIP list' to display the current VIP list with players remaining time on your Procon PC Tool Chat tab.
    You can also use the commands from the 'Other Plugin Support' function to add and remove VIP Slots. You can enter the commands in the Procon PC Tool chat as a hidden admin say (e.g. /vsm-addvip SniperBen +7). Nobody will see the commands within the in-game chat.


    FAQ


    Do I need a new MySQL database?
    No. For this Plugin, it is NOT necessary to create a new MySQL database. You can use the same MySQL database as the Statslogger Plugin.


    How to manage two or more Gameservers?
    With the web-based interface you can manage a single Gameserver or many Gameservers with different VIP players. If two Gameservers use the same 'Server Group' ID (Plugin settings), then the VIP players are valid for both Gameservers. You can change the 'Server Group' ID in order to manage the VIPs for each Gameserver separately. It is recommended that all Gameservers use the same MySQL database. If two or more Gameservers use the same 'Server Group', then the Plugin setting 'Import NEW VIPs from Gameserver to SQL' must be set to no (remove).


    AdKats Plugin
    It is possible to use the VIP Slot Manager and the AdKats Plugin. Please make sure that Adkats do not manage the reserved VIP Slots. This is disabled by default. Open the settings from Adkats Plugin, then go to Adkats > A16. Orchestration Settings > Feed Server Reserved Slots > False


    What is the diffenence between 'add 30' and 'add +30'?
    The command with + checks the VIP players remaining time (e.g. the VIP Slot is still valid for 5 days), then the Plugin ADDS 30 days to the 'old' time period. For example: old time period (5 days) + new time period (30 days) = total time period (35 days). Now the VIP Slot is valid for 35 days.


    How to clean up the database?
    With the website you can clean up the database to remove all old VIPs with the status 'inactive'. Go to the website. Type 'inactive' into the search box. Mark all entires (click on the first VIP and then hold down the SHIFT key on your keyboard and click on the last VIP). Then open the drop down menu and click on 'DELETE' to delete the marked entries.


    Witch Games are supported?
    The Plugin works fine for BF3, BF4, BFH and BFBC2. The support for other Games are still not tested.



    Changelog


    1.0.0.6 (23.06.2018)
    - Add: Aggressive Join Abuse Protection (optional)
    - Add: Command !addsemivip (optional)
    - Add: Advanced Log to Adkats (optional)
    -Add: Alternative Link to github

    1.0.0.5 (26.01.2018)
    - Add: VIP EA Guid Tracking to update playername changes automatically (optional)
    - Add: Command !changevip to change VIP Slot playername
    - Modification: In-Game VIP Command !lead (optional VIP protection)
    - Modification: Small code improvements
    - Fix: SQL Credentials after server restart
    - Fix: BC2 Procon compatibility
    - Fix: Website compatibility to php 5.6 / 7.0 / 7.1 / 7.2. New features and filters for better workflow

    1.0.0.4 (04.10.2017)
    - Add: Aggressive Join features

    1.0.0.3 (12.08.2017)
    - Add: Auto Correction for case sensitive difference in playername
    - Add: Auto Database Cleaner
    - Fix: Website (add days button)

    1.0.0.2 (09.05.2017)
    - Fix: Website blank site

    1.0.0.1 (02.05.2017)
    - Fix: In-Game VIP Commands



    Download


    Download the Plugin and website here:
    Attached Files Attached Files
    Last edited by maxdralle; 05-07-2018 at 09:20. Reason: updated to 1.0.0.6

  2. #2
    Very cool plugin maxdralle! Thank you for your time and effort in creating this.

    The plugin is working great in Procon but I can't seem to get the website to work.

    I keep getting this error:

    Fatal error: Uncaught exception 'EMySql' with message '1146: Table 'alcoholika_procon.vsm_tBrowserSessions' doesn't exist' in /usr/www/alcoholika/public/bf4vip/classMySQL.php:294 Stack trace: #0 /usr/www/alcoholika/public/bf4vip/classMySQL.php(308): TMySql->execute('SELECT id FROM ...') #1 /usr/www/alcoholika/public/bf4vip/mainFunctions.php(25): TMySql->query('SELECT id FROM ...') #2 /usr/www/alcoholika/public/bf4vip/config.php(101): GarbageCollection::updateSessions(Object(TMySql)) #3 /usr/www/alcoholika/public/bf4vip/index.php(4): include_once('/usr/www/alcoho...') #4 {main} thrown in /usr/www/alcoholika/public/bf4vip/classMySQL.php on line 294
    But the table is there.

    Screenshot (48).png
    Last edited by Sp0rAdiC; 24-04-2017 at 20:43.

  3. #3
    Senior Member
    Join Date
    Oct 2015
    Location
    Germany
    Posts
    292
    thx for your feedback!

    first you have to start the plugin (the plugin creates the tables).
    then the page is working

  4. #4
    Quote Originally Posted by maxdralle View Post
    thx for your feedback!

    first you have to start the plugin (the plugin creates the tables).
    then the page is working
    Hi. The plugin is running and 4 tables are created:

    vsm_tbrowsersessions
    vsm_tfilter
    vsm_tuser
    vsm_vips

    Is that all the tables that are required?

  5. #5
    Senior Member
    Join Date
    Oct 2015
    Location
    Germany
    Posts
    292
    Quote Originally Posted by Sp0rAdiC View Post
    Hi. The plugin is running and 4 tables are created:

    vsm_tbrowsersessions
    vsm_tfilter
    vsm_tuser
    vsm_vips

    Is that all the tables that are required?
    yes, thats it.
    now you can use the page

  6. #6
    Still getting this error

    Fatal error: Uncaught exception 'EMySql' with message '1146: Table 'alcoholika_procon.vsm_tBrowserSessions' doesn't exist' in /usr/www/alcoholika/public/bf4vip/classMySQL.php:294 Stack trace: #0 /usr/www/alcoholika/public/bf4vip/classMySQL.php(308): TMySql->execute('SELECT id FROM ...') #1 /usr/www/alcoholika/public/bf4vip/mainFunctions.php(25): TMySql->query('SELECT id FROM ...') #2 /usr/www/alcoholika/public/bf4vip/config.php(101): GarbageCollection::updateSessions(Object(TMySql)) #3 /usr/www/alcoholika/public/bf4vip/index.php(4): include_once('/usr/www/alcoho...') #4 {main} thrown in /usr/www/alcoholika/public/bf4vip/classMySQL.php on line 294

  7. #7
    Senior Member
    Join Date
    Oct 2015
    Location
    Germany
    Posts
    292
    Quote Originally Posted by Sp0rAdiC View Post
    Still getting this error
    the plugin is enabled?
    are in the in config.php the same SQL details as in the plugin settings?

    can you check via phpmyadmin if the tables exist?

  8. #8
    It's vsm_tbrowsersession(All lowercase) in my PhpMyAdmin. While the script mainFunctions.php is looking for vsm_tBrowserSessions. If I change it to all lowercase it works.

    Same thing with vsm_tUser

  9. #9
    I change the tables to

    vsm_tBrowserSessions
    vsm_tFilter
    vsm_tUser

    And it works now!

    vsm_vips is ok all lowercase

  10. #10
    So I've installed this to my server and database and I'm seeing this error every time I refresh the page:

    Fatal error: Uncaught exception 'Exception' with message 'DateTime::__construct(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone.' in /home1/bgcgamin/public_html/vip/api.php:15

    Clearly there's an issue... any ideas?

 

 

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •