- Required Dependencies
- https://chaoscode.io/resources/chaos.321/
- Optional Dependencies
- https://chaoscode.io/resources/pvpheatmap.311/
This plugin require the Chaos extension -> https://chaoscode.io/resources/chaos.321/
** Implementation with PVPHeatMap
** Size and position editor available in v1.1.0+
Features
- Customizable map renderer
- Option to render monument names and markers on top of the world map
- Option to render all map layers (overworld, train tunnels, underwater labs)
- Automated map layer switching, when you enter the train tunnels the map will switch to the train tunnel map, same with all levels of underwater labs
- Size and position the map anywhere on the screen, allow users to customize these values with a easy to use menu
- Focus the map by clicking on it, drag the map image around to view the surroundings
- Ability to zoom in and out, with console commands that can be used as keybinds
- Inexpensive to run
- Compatibility with other Chaos map plugins (PVPHeatMap only currently)
Performance
Minimap is inexpensive to run for the following reasons;
The map is drawn with 2 image components, the world image and the monument overlay (if enabled).
The map image is masked by the area of the minimap. Its not a subdivided image that is constantly changing based on your world position like other plugins using a rendered map.
Map updates don't redraw the entire UI, only the specific component values that need to be updated are updated. This means the required data that is sent to the client is as small as possible.
All client map updates are queued and frame budgeted and no clients are updated multiple times in the same frame
All updates for a player are bundled into 1 network message
Permissions
minimap.use - Required to use the minimap
Chat Commands
/map - Toggles the minimap
/map reset - Reset the size and position of the minimap for this user to the default values set in the config
Console Commands
minimap.regenerate - Regenerates all the map layers (admins/rcon only)
minimap.toggle - Toggles the minimap
minimap.zoom.in - Zooms in
minimap.zoom.out - Zooms out
minimap.reset - Reset the size and position of the minimap for this user to the default values set in the config
Config




** Implementation with PVPHeatMap
Features
- Customizable map renderer
- Option to render monument names and markers on top of the world map
- Option to render all map layers (overworld, train tunnels, underwater labs)
- Automated map layer switching, when you enter the train tunnels the map will switch to the train tunnel map, same with all levels of underwater labs
- Size and position the map anywhere on the screen, allow users to customize these values with a easy to use menu
- Focus the map by clicking on it, drag the map image around to view the surroundings
- Ability to zoom in and out, with console commands that can be used as keybinds
- Inexpensive to run
- Compatibility with other Chaos map plugins (PVPHeatMap only currently)
Performance
Minimap is inexpensive to run for the following reasons;
The map is drawn with 2 image components, the world image and the monument overlay (if enabled).
The map image is masked by the area of the minimap. Its not a subdivided image that is constantly changing based on your world position like other plugins using a rendered map.
Map updates don't redraw the entire UI, only the specific component values that need to be updated are updated. This means the required data that is sent to the client is as small as possible.
All client map updates are queued and frame budgeted and no clients are updated multiple times in the same frame
All updates for a player are bundled into 1 network message
Permissions
Minimap uses Oxides permission system
To assign a user permission use oxide.grant user "username|steam id" "permission" in console.
To assign a group permission use oxide.grant group "groupname" "permission" in console.
You can read more about how to use the permission system here : uMod - Permissions
To assign a user permission use oxide.grant user "username|steam id" "permission" in console.
To assign a group permission use oxide.grant group "groupname" "permission" in console.
You can read more about how to use the permission system here : uMod - Permissions
Chat Commands
/map - Toggles the minimap
/map reset - Reset the size and position of the minimap for this user to the default values set in the config
Console Commands
minimap.regenerate - Regenerates all the map layers (admins/rcon only)
minimap.toggle - Toggles the minimap
minimap.zoom.in - Zooms in
minimap.zoom.out - Zooms out
minimap.reset - Reset the size and position of the minimap for this user to the default values set in the config
Config
The configuration file can be found in your server directory at .../oxide/config/Minimap.json
The use of an editor and validator is recommended to avoid formatting issues
The use of an editor and validator is recommended to avoid formatting issues
JSON:
{
"Map Settings": {
"Zoom levels": 10,
"Default zoom level": 5,
"Enable train tunnel map": true,
"Enable underwater labs map": true,
"Enabled by default": false,
"Render resolution (1024, 2048, 4096)": 2048,
"Ocean margin (the amount of ocean to render around the map)": 500,
"Render tunnel entrance map markers": true,
"Render monument name map markers": true,
"Monument name font size": 20,
"Overworld Colors": {
"Base": {
"Hex": "49453FFF"
},
"Water": {
"Hex": "2B515CFF"
},
"Gravel": {
"Hex": "403E38FF"
},
"Dirt": {
"Hex": "997A54FF"
},
"Sand": {
"Hex": "B2A887FF"
},
"Grass": {
"Hex": "5A5E34FF"
},
"Forest": {
"Hex": "3F4C12FF"
},
"Rock": {
"Hex": "666460FF"
},
"Snow": {
"Hex": "DCEDF0FF"
},
"Pebble": {
"Hex": "234746FF"
},
"Offshore": {
"Hex": "0A3846FF"
},
"Overlay": {
"Opacity": 0.25,
"Hex": "262626FF"
},
"Marker Background": {
"Opacity": 1.0,
"Hex": "E0E0E0FF"
},
"Marker Foreground": {
"Opacity": 1.0,
"Hex": "222222FF"
},
"Monument Name": {
"Opacity": 1.0,
"Hex": "222222FF"
}
},
"Underworld Colors": {
"Overlay": {
"Opacity": 0.8,
"Hex": "121545FF"
},
"Marker Background": {
"Opacity": 1.0,
"Hex": "222222FF"
},
"Marker Foreground": {
"Opacity": 1.0,
"Hex": "949494FF"
},
"Monument Name": {
"Opacity": 1.0,
"Hex": "E0E0E0FF"
}
}
},
"UI Settings": {
"Screen position (base screen size is 1280x720)": {
"Horizontal (-635.0 -> 635.0)": 531.0,
"Vertical (-360.0 -> 360.0)": 243.0
},
"Minimap screen size (pixels)": 200.0,
"Border color": {
"Opacity": 1.0,
"Hex": "1C1A16"
},
"Foreground color": {
"Opacity": 1.0,
"Hex": "5D7239"
},
"Text color": {
"Opacity": 1.0,
"Hex": "B0CC80"
},
"Marker color": {
"Opacity": 1.0,
"Hex": "FFD272"
}
},
"Version": {
"Major": 1,
"Minor": 0,
"Patch": 0
}
}