Grand - The first multiplayer map editor.

Discuss everything related to Maniaplanet.

Moderator: English Moderator

Post Reply
User avatar
Guerro323
Posts: 610
Joined: 14 Jun 2014, 15:51

Grand - The first multiplayer map editor.

Post 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
Last edited by Guerro323 on 20 Sep 2015, 22:37, edited 3 times in total.
C'est Grandiose!
Image
User avatar
Nerpson
Translator
Translator
Posts: 1554
Joined: 27 Sep 2013, 18:02
Location: France
Contact:

Re: Grand - The first multiplayer map editor.

Post 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.
ImageImageImageImage
User avatar
Dommy
Translator
Translator
Posts: 1866
Joined: 25 Aug 2011, 21:45
Location: Poland
Contact:

Re: Grand - The first multiplayer map editor.

Post by Dommy »

Image
11/10 IGN
Ryzen 7 2700X, GTX 1070 Ti, 16 GB RAM, Windows 10 Insider Build
FORUM MODERATOR • CREATOR OF SHOOTMANIA GALAXY & TRACKMANIA² PURSUIT

Contact me via GALAXY & PURSUIT DISCORD
User avatar
Skyslide
Posts: 223
Joined: 14 Dec 2014, 17:20

Re: Grand - The first multiplayer map editor.

Post 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:
User avatar
Guerro323
Posts: 610
Joined: 14 Jun 2014, 15:51

Re: Grand - The first multiplayer map editor.

Post 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 :)
C'est Grandiose!
Image
BusardCendre
Posts: 174
Joined: 30 May 2013, 09:40

Re: Grand - The first multiplayer map editor.

Post by BusardCendre »

Wahoooo !! :clap:

it's just amazing !!

thanks a lot guys !!
Image

CPU : AMD FX-4170 (4 CPUs, ~4.2 GHz)
GPU : Sapphire Radeon HD 7850, 2 Go , DX 11
RAM : 8 Go DDR3
Win 7 Ultimate x64
User avatar
Soprah
Posts: 852
Joined: 11 Sep 2011, 16:07
Location: Germany

Re: Grand - The first multiplayer map editor.

Post by Soprah »

One of the most desited features for probably two years!!


GG :thumbsup:
oliverde8
Posts: 1286
Joined: 16 Jun 2010, 07:33
Location: in a Blue Box

Re: Grand - The first multiplayer map editor.

Post 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.
Image
Developper for The next generation, Clean and Powerfull controller eXpansion for your SM & TM server . Working on eXpansion² with full MP4 support and many other awesome features...
novationx
Posts: 2723
Joined: 10 Aug 2013, 22:33

Re: Grand - The first multiplayer map editor.

Post by novationx »

Sound awesome :)
The neverending waiting game has to stop.
ben3847
Posts: 293
Joined: 09 Aug 2011, 10:29

Re: Grand - The first multiplayer map editor.

Post by ben3847 »

now its nadeos turn :pop:
Post Reply

Return to “Maniaplanet”

Who is online

Users browsing this forum: No registered users and 1 guest