LustyMap for Rust

In-game Map and Minimap GUI

Total Downloads: 21,842 - First Release: Sep 8, 2015 - Last Update: Nov 20, 2016

5/5, 113 likes
  1. k1lly0u
    This plugin was originally created by Kayzor. If you like his work consider donating to him here > Donate to Kayzor <
    It has since been taken over by myself and completely revamped to make it as automated and least resource intensive as possible. If you like my work you can buy me a beer and hit that Support The Developer button

    At the moment this plugin only supports friend lists from;

    Support will be added for others when they are updated to reduce the load on this plugin. Alternatively any developer can add/manage a custom friends list via their own plugin using the API supplied below

    IMPORTANT INFORMATION: This plugin requires the icon images to be added to the oxide data folder on the server (details below)


    LustyMap is a plugin that adds an in-game Map and Minimap.

    The plugin has two modes, the simple mode (default) uses a single image for the map and minimap, the complex mode uses a sliced up version of the map to allow for a zoomed in minimap.


    Map Images
    The map itself can now be downloaded automatically and the plugin will slice it up accordingly. However to do this you must register your server on beancan.io - Home (More information below)

    Icon Images - REQUIRED!
    Download the following zip file and extract it to your "/server/oxide/data/" folder. This contains all the map icons you will need. You may replace these icons with you own custom versions if you wish
    http://www.filedropper.com/lustymap_1

    Your folder structure should look like the following and the icons folder should contain by default 194 icon images
    Untitled-3.png


    Complex Mode
    The complex mode (zoomed in minimap) uses a series of chopped up map images to provide a adjustable zoomed in view.
    This process is completely automated by the plugin. To take advantage of this simply set the config option "UseComplexMap" to true.

    Forcing Complex Mode

    You can also lock the map in a specified zoom level in complex mode by setting the config option "ForceMapZoom" to true.
    When forcing map zoom you must set "ForcedZoomLevel" between 1 and 3.
    This will disable the use of the regular minimap and only the set zoomed level will be accessible to all users


    Map automation and Beancan.IO

    Credit to Calytic and Nogrod for providing a awesome map generator and a free to use API!
    Map generation and automation is now possible using API from beancan.io.

    Simply register your server on the website and retrieve your API key. Your API key can be found by editing your server details, under the various options you will see a section titled API and your key is the entry labelled "Key"

    Once you have your API key enter in into your config and reload the plugin.

    The plugin will then contact beancan.io to generate and download your map.

    Once the map has been downloaded, if you have complex mode enabled it will chop up and store all the pieces. This process may take a few moments. When that is done the plugin will become active and all players should be able to use the map.

    Upon wipes LustyMap will detect a new map and will automatically download the updated map image, making the process entirely automated.

    Users utilizing this feature will also have access to a map view that can be embedded on your website. When the map is generated via LustyMap it will be automatically updated so you will never need to update your website to match new maps. Browse to your server's map via beancan.io and click the "embed" button to obtain a URL to use

    ** If the map generated does not match your map you can re-download the map by using the console command "resetmap" If the map does not match directly after a game update note that the map generator also requires updates so please wait for 5-10 minutes before trying to reset the map. If after using the command you map is still incorrect please leave a comment in the support thread stating your mapsize and mapseed along with a screen cap

    Custom Map Images

    If you do not want to use maps provided by beancan.io you can still use a custom map image.
    To do this simply download your image and save it in your "/server/oxide/data/LustyMap/" folder.
    Then in your config change "CustomMap_Filename" to use the image filename and set "CustomMap_Use" to true. The process after this is the same as before, it just doesn't download the map from the web


    Accessing the Map
    Players can press M to open the in game map (pressing M again will close it) (this can be changed in the config using the "MapKeybind" setting).

    Players can hide the minimap using the <<< button located at the top right of the minimap (then >>> to open it back up)

    Alternatively if you do not want to force a keybind on players they can use the chat command "/map" to open the map or "/map mini" to open the mini map

    Admin Commands
    All previous admin commands have been removed due to the way the new version generates the UI. All these options are still available to change in the config and will require a reload of the plugin after making any changes to generate the new UI

    Adding Custom Markers - via chat commands (See Below)
    By using the command "/marker" you can add and remove custom map markers. When adding a marker you will have the option to specify a icon. The icon must be the filename plus its extension (example.png) and this icon MUST be located in your "/oxide/data/LustyMap/custom/" folder. Alternatively you can leave it blank and the default icon will be supplied

    Map Spam Monitoring
    It has been brought to my attention that some deviants may spam the map open/closed in order to lag a server and potentially crash it.
    To combat this I have implemented a spam monitoring system. This system will monitor when a user changes map mode rapidly, whether it being opening and closing the map, or zooming in and out etc.
    If the user changes type more then once in the set amount of time (default 3 seconds) it will be registered as potential spam. By default after 5 rapid changes the user will receive a warning, and after 10 rapid changes the users map will be disabled for 2 minutes.
    There are a few options in the config regarding this system including a option to enable/disable the system entirely


    ** Linux Users ** The map splitter requires LibGDIPlus to be installed on your system.
    Code (Text):
    sudo apt install libgdiplus
    Afterwards restart your system for the changes to take effect


    Chat Commands
    /map admin
    - Toggles Admin View On/Off (allows you to see all player on the map) - Requires auth level or permission "lustymap.admin"
    /marker add <name> <opt:icon> - Add a new map marker on your position with a optional custom icon
    /marker remove <name> - Remove a custom map marker by name

    Console Commands
    mapreset
    - Force the plugin to erase existing image data and re-download all images (used to reset generated maps)


    Config
    Code (C#):
    {
      "FriendOptions": {
        "AllowCustomLists": true, // This allows other plugins to create friend lists for players to see on their map
        "UseClans": true, // Adds clan members to the users friend list
        "UseFriends": true // Adds friends (Friends plugin) to users friend list
      },
      "MapMarkers": { // Various marker options for all players
        "ShowAllPlayers": true, // Shows all players
        "ShowCaves": true, // Shows caves
        "ShowDebris": true,// Shows helicopter debris (recommend OFF)
        "ShowFriends": true,// Shows friend locations
        "ShowHelicopters": true,// Shows helicopters
        "ShowMarkerNames": true,// Shows the names of each marker
        "ShowMonuments": true,// Shows monument locations
        "ShowPlanes": true,// Shows planes
        "ShowPlayer": true,// Shows the users current location
        "ShowSupplyDrops": true// Shows dropped SupplyDrops
      },
      "MapOptions": {
        "HideEventPlayers": true,// Remove players in an event from the map
        "MapImage": {
          "APIKey": "",// API key provided by beancan.io
          "CustomMap_Filename": "",// Custom map image filename
          "CustomMap_Use": false// Activates the use of a custom map image
        },
        "MapKeybind": "m", // Keybind for players to open the map
        "MinimapOptions": {
    "ComplexOptions": {
            "ForcedZoomLevel": 1, // The level that zoom is locked to
            "ForceMapZoom": true, // Locks the map in 1 zoom mode
            "UseComplexMap": true // Enables the complex map
          },
          "HorizontalScale": 1.0,// Allows you to adjust the horizontal scale of the minimap and complex map
          "OffsetSide": 0.0, // Position adjustment
          "OffsetTop": 0.0,// Position adjustment
          "OnLeftSide": true, // Create the mini map on the left side (set to false for right side)
          "UseMinimap": true,//Allows use of the complex map
          "VerticalScale": 1.0// Allows you to adjust the vertical scale of the minimap and complex map
        },
        "ShowCompass": true,// Shows users direction and position
        "StartOpen": true,// Open the map on plugin load
        "UpdateSpeed": 1.0 // The speed (in seconds) in which the markers are updated on the map * Recommended is 1.0
      },
      "SpamOptions": { // These are options regarding map spam
        "DisableAttempts": 10, // The amount of attempts before disabling the users map
        "DisableSeconds": 120, // The time in seconds the users map will be disabled
        "Enabled": true, // Enables spam check
        "TimeBetweenAttempts": 3, // Time between map changes
        "WarningAttempts": 5 // Attempts before warning the user of their spam
      }
    }
    API
    Custom Markers

    Code (C#):
    // x - Objects X position
    // z - Objects Z position
    // r - Objects rotation
    // name - Name of the object (must be unique to that object)
    // icon - The icon file name
    bool AddMarker(float x, float z, string name, string icon = "special", float r = 0) // Add a new map marker
    void UpdateMarker(float x, float z, string name, string icon = "special", float r = 0) // Update a existing map marker
    bool RemoveMarker(string name) // Remove a map marker by name
     
    Map Management - For use with fullscreen UI to disable LustyMap from overlapping
    Code (C#):
    void EnableMaps(BasePlayer player) // Activates a users map
    void DisableMaps(BasePlayer player) // Disables a users map
    Custom Friend Lists
    Code (C#):
    // All lists are (string) userID's
    // Name should be set to your plugin's title
    // These lists are NOT saved through restart
    bool AddFriendList(string playerId, string name, List<string> list) // Add a entire list of friend IDs
    bool RemoveFriendList(string playerId, string name) // Remove a entire friend list
    bool UpdateFriendList(string playerId, string name, List<string> list) // Replace a entire list
    bool AddFriend(string playerId, string name, string friendId) // Add a individual friend
    bool RemoveFriend(string playerId, string name, string friendId) // Remove a individual friend
     
    Pictures
    252490_screenshots_20161031132146_1.jpg 252490_screenshots_20161031132156_1.jpg 252490_screenshots_20161031132209_1.jpg