Page 1 of 7

Grand - The first multiplayer map editor.

Posted: 20 Sep 2015, 18:51
by Guerro323
Image
Hey everyone, Im proud to present you the first online map editor.
The developers are Nerpson and myself, Guerro.


Image
Grand is a ManiaPlanet written in ManiaScript that allows you to connect yourself on a server and a creation group and sync your map online. If other users log on this group, they will see what you're doing and vice-versa. The blocks you put on the map will also be placed on others' map.


Image
The Grand server creates files and stores all of what you've done. The block ID, its location, the placing time.
Each second, the client interrogates the server and this latter answers by sending the event list to the client. Then, the client performs each of these events. If you place one block, one road or terraform, the client will create a query and send it to the same server that will store it.


Image
Client
In order to install the client, you must first download the archive. You will find the link bellow. When opened, you'll find in it one single file, named Grand.Script.txt. Place this file in the folder Documents/ManiaPlanet/Scripts/EditorPlugins/. Do not rename it. You do not need to restart your game to use it, just quit the editor if you're currently in, and go back in it. Then, look at the bottom of the screen, you'll find a button with a USB like icon on it. Click it, I will open the plugins menu. Look for a button with Grand written on it and click it. Tada! The plugin is now launched.
Once launched, the plugin will ask you the server address, the group name and password. If these latters are correct, you will be logged.

Server
Firstly, download the server archive thanks to the link bellow. Open your server FTP and place the archive content where you want to. Make sure that this folder and its files have all read/write permissions. You have to write some API keys in the keys.json file. Here's an example:

Code: Select all

[{"key": "your_randomly_generated_master_key_here", "type": 0}, {"key": "your_randomly_generated_public_key_here", "type": 1}]
Keep in mind that there is no supplied GUI to manage the server (that's a good oppotunity to code your own one ^^).


Image
Pictures
Image
Image
Image
Image

Video
Image


Image
A server is already online!
Go to the manialink grandofficial and create your group now! Enter a name, a password, a description, and there you go. Then, you simply just have to copy the server's address thanks to the button in the top of the manialink and paste it in your plugin.


Image
The archive's password is guerritos.
Client v1.0: DOWNLOAD!
Server v1.0: DOWNLOAD!


Image
What will come next?
  • Moveable modules
  • Spectators
Reported issues
  • Sometimes the client fails to send an event.
Image
  • I can't join the server.
    1. Check that you have the same environment and mood as the group's.
    2. Verify your credentials.
    3. Verify the address you entered.
    4. Try the same URL in your web browser. If you do not see false written, the server is offline.
    5. You may have been banned from the server.
    6. The server has a problem. Contact the server's administrator.
  • I can't place blocks.
    1. Verify your Internet connection.
    2. You may have been banned from the server.
    3. The server has a problem. Contact the server's administrator.
  • Others do not see my modifications.
    1. Sometimes, issues are occurring while sending your modifications. Try to restart the plugin, that will reload all blocks.
    2. Try not to hurry up when placing blocks (Slow down your clicks).
    3. You may have been banned from the server.
    4. The server has a problem. Contact the server's administrator.
  • I do not see others' modifications.
    1. Verify your Internet connection.
    2. Tell them to take a look at the solutions on the previous point.
    3. You may have been banned from the server.
Image
If you're enjoying creating maps with your friends, you can support us to continue the development by using 5 seconds of your time, thanks to this link: http://adf.ly/7766884/grandthanks

You can also use this code and put it in your signature. :D

Code: Select all

[url=https://forum.maniaplanet.com/viewtopic.php?f=8&t=31819&start=0][img]https://dl.dropboxusercontent.com/u/44247752/ManiaPlanet/Grand/support_grand.png[/img][/url]
Image

Re: Grand - The first multiplayer map editor.

Posted: 20 Sep 2015, 18:52
by Nerpson
Image
If you want to host a Grand server, take a look at these points.

API
The only way to do manipulations on groups is to use this API. In the following lines, replace address with your main Grand directory address located on your server.

Adding a group

Code: Select all

address?key=A&addgroup&groupname=B&grouppassword=C&groupadminlogin=D&groupdescription=E
Params:
  • A: Your API key.
  • B: The group name.
  • C: The group password.
  • D: The group admin's login.
  • E: The group description.
Returns:
  • A raw text being 'true' if the group has been created.
  • Error code 0
  • Error code 1
  • Error code 2
  • Error code 3
  • Error code 4
Deleting a group

Code: Select all

address?key=A&deletegroup&groupname=B&grouppassword=C&groupadminlogin=D
Params:
  • A: Your API key.
  • B: The group name.
  • C: The group password.
  • D: The group admin's login.
Returns:
  • A raw text being 'true' if the group has been deleted.
  • Error code 0
  • Error code 1
  • Error code 2
  • Error code 3
  • Error code 5
  • Error code 9
  • Error code 10
Dumping a group

Code: Select all

address?key=A&dumpgroup&groupname=B&grouppassword=C&groupadminlogin=D
Params:
  • A: Your API key.
  • B: The group name.
  • C: The group password.
  • D: The group admin's login.
Returns:
  • A raw text being 'true' if the group has been dumped.
  • Error code 0
  • Error code 1
  • Error code 2
  • Error code 3
  • Error code 5
  • Error code 9
Editing a group

Code: Select all

address?key=A&dumpgroup&groupname=B&groupoldpassword=C&groupnewpassword=D&groupoldadminlogin=E&groupnewadminlogin=F&groupnewdescription=G
Params:
  • A: Your API key.
  • B: The group name.
  • C: The group current password.
  • D: The group new password (optionnal).
  • E: The group current admin's login.
  • F: The group new admin's login.
  • G: The group new description.
Returns:
  • A raw text being 'true' if the group has been dumped.
  • Error code 0
  • Error code 1
  • Error code 2
  • Error code 3
  • Error code 5
  • Error code 9
Setting a new group admin

Code: Select all

address?key=A&setgroupadmin&groupname=B&grouppassword=C&groupoldadminlogin=D&groupnewadminlogin=E
Params:
  • A: Your API key.
  • B: The group name.
  • C: The new group password.
  • D: The current group admin's login.
  • E: The new group admin's login.
Returns:
  • A raw text being 'true' if the new admin is set.
  • Error code 0
  • Error code 1
  • Error code 2
  • Error code 3
  • Error code 5
Setting a new group password

Code: Select all

address?key=A&setgrouppassword&groupname=B&groupoldpassword=C&groupnewpassword=D&groupadmin=E
Params:
  • A: Your API key.
  • B: The group name.
  • C: The old group's password.
  • D: The new group's password.
  • E: The new group admin.
Returns:
  • A raw text being 'true' if the new password is set.
  • Error code 0
  • Error code 1
  • Error code 2
  • Error code 5
  • Error code 9
  • Error code 10
Banning a login

Code: Select all

address?key=A&banlogin&login=B
Params:
  • A: Your API key.
  • B: The login to ban.
(API key type must be 0)

Returns:
  • A raw text being 'true' if the login has been banned.
  • Error code 0
  • Error code 1
  • Error code 2
  • Error code 11
Banning an IP address

Code: Select all

address?key=A&banip&ip=B
Params:
  • A: Your API key.
  • B: The IP address to ban.
(API key type must be 0)

Returns:
  • A raw text being 'true' if the IP address has been banned.
  • Error code 0
  • Error code 1
  • Error code 2
  • Error code 11
Unbanning a login

Code: Select all

address?key=A&unbanlogin&login=B
Params:
  • A: Your API key.
  • B: The login to unban.
Returns:
  • A raw text being 'true' if the login has been unbanned.
  • Error code 0
  • Error code 1
  • Error code 2
  • Error code 6
Unbanning an IP address

Code: Select all

address?key=A&unbanip&ip=B
Params:
  • A: Your API key.
  • B: The IP address to unban.
Returns:
  • A raw text being 'true' if the IP address has been unbanned.
  • Error code 0
  • Error code 1
  • Error code 2
  • Error code 7
Getting the logins blacklist

Code: Select all

address?key=A&getloginblacklist
Params:
  • A: Your API key.
(API key type must be 0)

Returns:
  • A JSON array with all logins in strings.
  • Error code 0
  • Error code 1
  • Error code 11
Getting the IP addresses blacklist

Code: Select all

address?key=A&getipblacklist
Params:
  • A: Your API key.
(API key type must be 0)

Returns:
  • A JSON array with all IP addresses in strings.
  • Error code 0
  • Error code 1
  • Error code 11
Getting the groups

Code: Select all

address?key=A&getgroups(&xml)
Params:
  • A: Your API key.
(Adding &xml will return a XML file instead of JSON)
(A 0 type key will include groups' password)

Returns:
  • A JSON object / XML file with all groups.
  • Error code 0
  • Error code 1
Getting a group's information

Code: Select all

address?key=A&getgroupinfo&groupname=B(&xml)
Params:
  • A: Your API key.
  • B: The group name.
(Adding &xml will return a XML file instead of JSON)
(A 0 type key will include the group's password)

Returns:
  • A JSON object / XML file with the group's information.
  • Error code 0
  • Error code 1
  • Error code 2
  • Error code 5
Getting a group's events

Code: Select all

address?key=A&getgroupevents&groupname=B
Params:
  • A: Your API key.
  • B: The group name.
Returns:
  • A JSON array with the specified group's events.
  • Error code 0
  • Error code 1
  • Error code 2
  • Error code 8
Getting a group's admin login

Code: Select all

address?key=A&getgroupadmin&groupname=B
Params:
  • A: Your API key.
  • B: The group name.
Returns:
  • A raw text being the login.
  • Error code 0
  • Error code 1
  • Error code 2
  • Error code 5
Getting a group's users

Code: Select all

address?key=A&getgroupusers&groupname=B(&xml)
Params:
  • A: Your API key.
  • B: The group name.
(Adding &xml will return a XML file instead of JSON)

Returns:
  • A JSON array / XML file with the specified group's users in strings.
  • Error code 0
  • Error code 1
  • Error code 2
  • Error code 5
Getting a group's password

Code: Select all

address?key=A&getgrouppassword&groupname=B
Params:
  • A: Your API key.
  • B: The group name.
(API key type must be 0)

Returns:
  • A JSON array / XML file with the specified group's users in strings.
  • Error code 0
  • Error code 1
  • Error code 2
  • Error code 5
  • Error code 11
Getting a group's titlepack (+map type)

Code: Select all

address?key=A&getgrouptitle&groupname=B
Params:
  • A: Your API key.
  • B: The group name.
Returns:
  • A raw text being some information about the group's titlepack, map type (day, night, ...).
  • Error code 0
  • Error code 1
  • Error code 2
  • Error code 5
Getting a group's description

Code: Select all

address?key=A&getgroupdescription&groupname=B
Params:
  • A: Your API key.
  • B: The group name.
Returns:
  • A raw text being the description.
  • Error code 0
  • Error code 1
  • Error code 2
  • Error code 5
Getting a group's creation time

Code: Select all

address?key=A&getgroupcreationtime&groupname=B
Params:
  • A: Your API key.
  • B: The group name.
Returns:
  • A raw text being the Unix timestamp of the creation in seconds.
  • Error code 0
  • Error code 1
  • Error code 2
  • Error code 5
Error codes
  • 0: Wrong API key.
  • 1: No valid action specified.
  • 2: Parameters missing.
  • 3: The specified login is banned.
  • 4: This group name already exists.
  • 5: This group name does not exists.
  • 6: The specified login isn't banned.
  • 7: The specified IP address isn't banned.
  • 8: This group does not have events or does not exists.
  • 9: The group password is not correct
  • 10: The group admin is not correct
  • 11: The specified API key does not enables you to perform that.

Re: Grand - The first multiplayer map editor.

Posted: 20 Sep 2015, 18:56
by Dommy
Image
11/10 IGN

Re: Grand - The first multiplayer map editor.

Posted: 20 Sep 2015, 19:57
by Skyslide
Great work!

Ill test it tomorrow!

Reaplays not possible? So Builder can create some things and friend can test it / drive it?
Creator can see ppl they driving :) :1010 :clap:

Re: Grand - The first multiplayer map editor.

Posted: 20 Sep 2015, 19:59
by Guerro323
Skyslide wrote:Great work!

Ill test it tomorrow!

Reaplays not possible? So Builder can create some things and friend can test it / drive it?
Creator can see ppl they driving :) :1010 :clap:
For now, we can't.
But you can drive/test your map even if the plugin is active :)

Re: Grand - The first multiplayer map editor.

Posted: 20 Sep 2015, 20:00
by BusardCendre
Wahoooo !! :clap:

it's just amazing !!

thanks a lot guys !!

Re: Grand - The first multiplayer map editor.

Posted: 20 Sep 2015, 20:01
by Soprah
One of the most desited features for probably two years!!


GG :thumbsup:

Re: Grand - The first multiplayer map editor.

Posted: 20 Sep 2015, 20:02
by oliverde8
What, what
This is a wonderful surprise :D. There are now words to describe the awsomeness of this.

I must test this as soon as possible.

Re: Grand - The first multiplayer map editor.

Posted: 20 Sep 2015, 20:48
by novationx
Sound awesome :)

Re: Grand - The first multiplayer map editor.

Posted: 20 Sep 2015, 21:47
by ben3847
now its nadeos turn :pop: