Default UI
LiveAtlasUI

Credits to every creator that made these. This wouldn’t be possible without their work.

Dowloads:

I used some text from https://github.com/webbukkit/dynmap/issues/2609 to simplify it.

Report issues in my forum.

We are gonna need these things:

A FalixNodes Server

Dynmap (Forge and Bukkit) both work.

A FalixNodes Database.

An Heroku account along with Heroku CLI

Pros:

Map will be on even if server is off.

Players and tiles will still update even with the database on.

Cons:

Heroku will stop after Dyno hours expire

1: Creating A Database in FalixNodes

  1. Go to your server and go to database tab then press create a database
  2. When greeted by this window, give it a name, I will go with “Example”

3.  After our Database was succesfully created, Save the Database name, user, host and       password. Those are essential to our dynmap. You can see the password by pressing the eye    icon on the top right corner. I will add the host and port already to the config to make it a bit easy.

Prepping our dynmap plugin to work with mysql.

  1. Start the server with default config if you haven’t already (this is IMPORTANT since it won’t work without)
  2. Stop the server and go to file manager in the menu bar and navigate to either: plugins/dynmap or just dynmap folder if you are using forge.
  3. Find the file called: configuration.txt, open it and modify these elements:

We will start by shifting from filetree to mysql first we find:

storage:
# Filetree storage (standard tree of image files for maps)
type: filetree
# SQLite db for map storage (uses dbfile as storage location)
#type: sqlite
#dbfile: dynmap.db
# MySQL DB for map storage (at 'hostname':'port' with flags "flags" in database 'database' using user 'userid' password 'password' and table prefix 'prefix')
#type: mysql
#hostname: localhost
#port: 3306
#database: dynmap
#userid: dynmap
#password: dynmap
#prefix: ""
#flags: "?allowReconnect=true"

And change to this:

storage:
# Filetree storage (standard tree of image files for maps)
#type: filetree <- DONT FORGET TO COMMENT THIS OUT
# SQLite db for map storage (uses dbfile as storage location)
#type: sqlite
#dbfile: dynmap.db
# MySQL DB for map storage (at 'hostname':'port' with flags "flags" in database 'database' using user 'userid' password 'password' and table prefix 'prefix')
type: mysql
hostname: de1-db.falix.gg
port: 3306
database: <databasename>
userid: <dynmap_mysql_user>
password: <dynmap_mysql_password>
prefix: "" # Can add prefix for tables if you want
flags: "?allowReconnect=true"

Now changing some component settings:

Find this:

- class: org.dynmap.InternalClientUpdateComponent
sendhealth: true
sendposition: true
allowwebchat: true
webchat-interval: 5
hidewebchatip: true
trustclientname: false
includehiddenplayers: false
# (optional) if true, color codes in player display names are used
use-name-colors: false
# (optional) if true, player login IDs will be used for web chat when their IPs match
use-player-login-ip: true
# (optional) if use-player-login-ip is true, setting this to true will cause chat messages not matching a known player IP to be ignored
require-player-login-ip: false
# (optional) block player login IDs that are banned from chatting
block-banned-player-chat: true
# Require login for web-to-server chat (requires login-enabled: true)
webchat-requires-login: false
# If set to true, users must have dynmap.webchat permission in order to chat
webchat-permissions: false
# Limit length of single chat messages
chatlengthlimit: 256
# # Optional - make players hidden when they are inside/underground/in shadows (#=light level: 0=full shadow,15=sky)
# hideifshadow: 4
# # Optional - make player hidden when they are under cover (#=sky light level,0=underground,15=open to sky)
# hideifundercover: 14
# # (Optional) if true, players that are crouching/sneaking will be hidden 
hideifsneaking: false
# If true, player positions/status is protected (login with ID with dynmap.playermarkers.seeall permission required for info other than self)
protected-player-info: false
# If true, hide players with invisibility potion effects active
hide-if-invisiblity-potion: true
# If true, player names are not shown on map, chat, list
hidenames: false

To this:

# - class: org.dynmap.InternalClientUpdateComponent
#sendhealth: true
#sendposition: true
#allowwebchat: true
#webchat-interval: 5
#hidewebchatip: false
#trustclientname: false
#includehiddenplayers: false
# (optional) if true, color codes in player display names are used
#use-name-colors: false
# (optional) if true, player login IDs will be used for web chat when their IPs match
#use-player-login-ip: true
# (optional) if use-player-login-ip is true, setting this to true will cause chat messages not matching a known player IP to be ignored
#require-player-login-ip: false
# (optional) block player login IDs that are banned from chatting
#block-banned-player-chat: true
# Require login for web-to-server chat (requires login-enabled: true)
#webchat-requires-login: false
# If set to true, users must have dynmap.webchat permission in order to chat
#webchat-permissions: false
# Limit length of single chat messages
#chatlengthlimit: 256
# # Optional - make players hidden when they are inside/underground/in shadows (#=light level: 0=full shadow,15=sky)
# hideifshadow: 4
# # Optional - make player hidden when they are under cover (#=sky light level,0=underground,15=open to sky)
# hideifundercover: 14
# # (Optional) if true, players that are crouching/sneaking will be hidden
#hideifsneaking: false
# If true, player positions/status is protected (login with ID with dynmap.playermarkers.seeall permission required for info other than self)
#protected-player-info: false
# If true, hide players with invisibility potion effects active
#hide-if-invisiblity-potion: true
# If true, player names are not shown on map, chat, list
#hidenames: false

After that, Locate right below:

#- class: org.dynmap.JsonFileClientUpdateComponent
# writeinterval: 1
# sendhealth: true
# sendposition: true
# allowwebchat: true
# webchat-interval: 5
# hidewebchatip: false
# includehiddenplayers: false
# use-name-colors: false
# use-player-login-ip: false
# require-player-login-ip: false
# block-banned-player-chat: true
# hideifshadow: 0
# hideifundercover: 0
# hideifsneaking: false
# # Require login for web-to-server chat (requires login-enabled: true)
# webchat-requires-login: false
# # If set to true, users must have dynmap.webchat permission in order to chat
# webchat-permissions: false
# # Limit length of single chat messages
# chatlengthlimit: 256
# hide-if-invisiblity-potion: true
# hidenames: false

and change it to:

- class: org.dynmap.JsonFileClientUpdateComponent
writeinterval: 1
sendhealth: true
sendposition: true
allowwebchat: true
webchat-interval: 5
hidewebchatip: false
includehiddenplayers: false
use-name-colors: false
use-player-login-ip: false
require-player-login-ip: false
block-banned-player-chat: true
hideifshadow: 0
hideifundercover: 0
hideifsneaking: false
# # Require login for web-to-server chat (requires login-enabled: true)
webchat-requires-login: false
# # If set to true, users must have dynmap.webchat permission in order to chat
webchat-permissions: false
# # Limit length of single chat messages
chatlengthlimit: 256
hide-if-invisiblity-potion: true
hidenames: false

Disabling the internal web server

Now we are going to disable the internal web server since we don’t need it anymore.

Find disable-webserver in the configuration file and change the value from false to true.

Changing some urls for the web server

We are going to change some urls that is required for the dynmap standalone web server to work. This is the huge part most people had trouble with as far as I know.

Find the url: section in the configuration file. It should look like this.

url:
# configuration URL
#configuration: "up/configuration"
# update URL
#update: "up/world/{world}/{timestamp}"
# sendmessage URL
#sendmessage: "up/sendmessage"
# login URL
#login: "up/login"
# register URL
#register: "up/register"
# tiles base URL
#tiles: "tiles/"
# markers base URL
#markers: "tiles/"

After

url:
# configuration URL
configuration: "standalone/MySQL_configuration.php"
# update URL
update: "standalone/MySQL_update.php?world={world}&ts={timestamp}"
# sendmessage URL
sendmessage: "standalone/MySQL_sendmessage.php"
# login URL
login: "standalone/MySQL_login.php"
# register URL
register: "standalone/MySQL_register.php"
# tiles base URL
tiles: "standalone/MySQL_tiles.php?tile="
# markers base URL
markers: "standalone/MySQL_markers.php?marker="

Turn it on and off again

Start the minecraft server BUT DON’T TURN IT OFF JUST YET!
Check and see if there are any issues with dynmap by checking the latest log. If there are no issues, then turn off the server.

NOTICE

The main reason why you need to start and stop the server at the very end is because Dynmap creates configuration files for the web server to use. If you changed any settings in configuration.txt, then there is a chance that the config files in plugins/dynmap/web are changed.

EVEN BIGGER NOTICE

If you are going to enable users to log into dynmap. You should DEFINITELY install a SSL cert or use cloudflare’s proxy to make login credentials secure from the bad guys!

Setting up the webserver

Nice, you’ve made it here! congrats now, we are gonna set up the webserver.

First of all, you gotta download the files that are essential.

Ignore the warning, chrome thinks it’s bad but I assure you it’s just some nodejs code so you can run the webserver.

Download the files either LiveAtlas UI or default UI.

Second of all, Unzip the files into a folder you should have this:

Nice, you got that now we are gonna open:
.env

and we are gonna edit the database infos to our database infos:

save it if so edited.

DO NOT EDIT THE SESSION_SECRET OPTION IT WILL MESS IT UP IF YOU DO.

Now that we saved that file, we are gonna open the file called

MySQL_config
And just do the same for the last step.

Uploading all to heroku so we can run it.

First of all make an heroku account if you haven’t already

Second, install Heroku CLI

After, create an application like in the image below

Third,

Fourth: Now that we landed on the page we are gonna do the following:

Open the folder that you downloaded and open a command prompt in that directory.

Now, we are gonna do:

heroku login

Then, we are gonna execute:

git init

Then,

heroku git:remote -a <projectname>

After,

git add .

Next,

git commit -am "make it better"

Finally you will do:

git push heroku master

After some time you will have pushed the app to the heroku project. Now we just have to press “Open App” and your dynmap should show!

If it is black you may do a fullrender by doing:

/dynmap fullrender <worldname>

Everything’s been done to my server map like that

https://fluxiryadynmap.herokuapp.com/

Report issues in my forum.