The standard implementation of RosaServer including a plugin/gamemode system.
Vastly improved upon by the JPXS Team from the original by jdbool. Featuring enums, strongly typed .data
capability, strongly typed hooks, and more.
Requires RosaServer.
Copy config.sample.yml
to config.yml
and modify to your heart's content.
The easiest way to start working is to create either a plugin or a gamemode. They work the same, except only one gamemode can be enabled at a time.
If you use VS Code, you can get IntelliSense working using this Lua extension.
IntelliJ IDEA also has better support, using this plugin.
All the RosaServer types/globals are laid out in .meta/template
for this reason. It's also useful as documentation.
Useful commands for server administrators, with logs.
plugin.defaultConfig = {
-- Logs admin actions in Discord rich embeds.
webhookEnabled = false,
webhookHost = 'https://discord.com',
webhookPath = '/api/webhooks/xxxxxx/xxxxxx'
}
/resetlua
- Reset the Lua state and the game./mode <mode>
- Change the enabled mode.
/mod <phoneNumber/name>
- Add a moderator./unmod <phoneNumber/name>
- Remove a moderator.
/kick <phoneNumber/name> [reason]
- Kick a player./punish <phoneNumber/name> [reason]
- Ban an account based on previous bans./unpunish <phoneNumber/name> [reason]
- Remove a punishment from an account./ban <phoneNumber/name> <minutes> [reason]
- Ban an account./unban <phoneNumber/name> [reason]
- Unban an account./kill <phoneNumber/name>
- Kill a player.
/item <name/id>
- Spawn an item./car [type] [color]
- Spawn a vehicle./cash [amount]
- Give yourself money./give <phoneNumber> <amount>
- Give a player money./del
- Delete an object you're looking at.
/find <phoneNumber/name>
- Teleport to a player./fetch <phoneNumber/name>
- Teleport a player to you./hide
- Teleport to an inaccessible room.
/message <message>
- Announce a message./say <message>
- Announce a message prepended by (Moderator)./name <name>
- Set the server name./time <hour/hour:minute>
- Set the solar time./pos
- Get your current position./skip
- Skip the round timer./who <name>
- Search players by name.
/warn <phoneNumber/name> <reason>
- Warn a player./warned
- Acknowledge a warning.
Adds more useful ban messages.
plugin.defaultConfig = {
formatString = 'You are still banned for %im!',
permaFormatString = 'You are permanently banned!'
}
Adds some useful console commands.
eval <code>
- Evaluate a Lua string.list
- List all current players.listplugins
- List all plugins.enableplugin <plugin>
- Enable a plugin (persists after a restart).disableplugin <plugin>
- Disable a plugin (persists after a restart).reloadplugin <plugin>
- Reload a plugin.reloadconfig
- Reload the configuration file.listbans
- List all current bans.
Adds the /help
command.
Logs a bunch of useful events in the console and in daily files.
plugin.defaultConfig = {
-- Writes log lines in Discord code blocks.
webhookEnabled = false,
webhookHost = 'https://discord.com',
webhookPath = '/api/webhooks/xxxxxx/xxxxxx'
}
Rejects very wide chat messages.
Adds the /shutdown [minutes/"now"]
command.
Adds useful information to the console window title.
plugin.defaultConfig = {
updateSeconds = 10
}
Also, adds the /tps
command.
Streams player info to a web server.
plugin.defaultConfig = {
host = 'https://oxs.international',
path = '/api/v1/players',
-- Seconds allowed between requests even if nothing has changed (default 10 min)
maximumWaitTime = 10 * 60
}
Locates players relative to streets.
/where <phoneNumber/name>
- Locate a player.
Only let in certain players.
plugin.defaultConfig = {
-- How many people can be let in regardless of if they're whitelisted
maxPublicSlots = 0
}
listwhitelist
- List all whitelisted players./whitelist <phoneNumber>
- Add a player to the whitelist./unwhitelist <phoneNumber>
- Remove a player from the whitelist.