OwlGamingCommunity / V

Licence: GPL-2.0 License
OwlGaming roleplay script for RAGE Multiplayer on GTA 5.

Programming Languages

C#
18002 projects
HTML
75241 projects

Projects that are alternatives of or similar to V

gtav-online-ahk
GTA V Online AHK-Macros
Stars: ✭ 45 (+25%)
Mutual labels:  gta, gta5, gtav
saltychat-fivem
FiveM implementation of Salty Chat (TeamSpeak 3 based Voice Plugin)
Stars: ✭ 64 (+77.78%)
Mutual labels:  gta, gta5, gtav
UnitedCallouts
UnitedCallouts adds over 20+ callouts for LSPDFR, a popular GTA V modification.
Stars: ✭ 14 (-61.11%)
Mutual labels:  gta, gta5
v2saconv
GTAV > GTASA resource converter. Converts YTD/YDR/YDD/YFT resources to DFF/TXD and generates COL files.
Stars: ✭ 68 (+88.89%)
Mutual labels:  gta5, gtav
GTAV-Self-driving-car
Self driving car in GTAV with Deep Learning
Stars: ✭ 15 (-58.33%)
Mutual labels:  gta5, gtav
Aurora
Unified lighting effects across multiple brands and various games.
Stars: ✭ 1,673 (+4547.22%)
Mutual labels:  gta, gta5
Fivem
The source code for the Cfx.re modification frameworks, such as FiveM, RedM and LibertyM, as well as FXServer.
Stars: ✭ 2,240 (+6122.22%)
Mutual labels:  gta, gtav
V.Rainbomizer
Randomizers for Grand Theft Auto: V
Stars: ✭ 52 (+44.44%)
Mutual labels:  gta, gta5
GTA-RP
GT-MP Role-playing gamemode
Stars: ✭ 39 (+8.33%)
Mutual labels:  gta, roleplay
RAGE-StringsDatabase
This repository contains known string lines and file names for RAGE based games (GTA IV, GTA V, RDR 2)
Stars: ✭ 26 (-27.78%)
Mutual labels:  gta, gtav
RageMP.Net
RAGE Multiplayer .NET Core Wrapper
Stars: ✭ 21 (-41.67%)
Mutual labels:  gta5, ragemp
police-cad
This is a easy to setup and use police server CAD. Includes a signup/login for both Civilians and Police Officers. Also this is mobile friendly. Built for GTA V's Modding framework: FiveM.
Stars: ✭ 49 (+36.11%)
Mutual labels:  gtav, roleplay
LiDAR-GTA-V
A plugin for Grand Theft Auto V that generates a labeled LiDAR point cloud from the game environment.
Stars: ✭ 127 (+252.78%)
Mutual labels:  gta5, gtav
pHake
GTA Online Mod
Stars: ✭ 74 (+105.56%)
Mutual labels:  gta, gta5
legacy-rp-admin-v3
💻 A web interface to help with administrative duties at the FiveM server: Legacy Roleplay. Currently compatible with the OP-FW framework.
Stars: ✭ 29 (-19.44%)
Mutual labels:  roleplay
rpnow
The Do-It-Yourself Roleplay Chat Solution
Stars: ✭ 22 (-38.89%)
Mutual labels:  roleplay
altv-quickstart
The fastest alt:V JS setup on GitHub.
Stars: ✭ 29 (-19.44%)
Mutual labels:  ragemp
GTA5-NativeTrainer
GTA5 Epic最新版修改器(汉化版)
Stars: ✭ 21 (-41.67%)
Mutual labels:  gta5
plant-trait-ontology
Explore the Plant Trait Ontology on the Planteome site.
Stars: ✭ 26 (-27.78%)
Mutual labels:  owl
snaily-cadv4
💻 An open source Computer Aided Dispatch (CAD) for FiveM, this is a web based integration for communities who love police roleplaying and dispatching. Discord: https://discord.gg/eGnrPqEH7U
Stars: ✭ 36 (+0%)
Mutual labels:  gtav

OwlGaming V

.NET

The Grand Theft Auto V Roleplay server for RAGE:MP.

Credits

Massive props to the developers who have spent countless hours making this project what it is right now!

Also a thank you to the people who contributed to the game data

  • Vubstersmurf
  • Dexter
  • Wright

What is this repository for?

  • Used for the OwlGaming Community's V RP server
  • Built using C# server side and client side with a MySQL Database backend.

References

How do I get it set up?

Generating Events

The script uses generated RAGE events (network & UI) via JSON manifest files. These files are located in \EventDescriptors\Network\ and \EventDescriptors\UI\

Any time you add or modify an event, you must run the GenerateEvents.bat file.

Adding New Scripts & Resources

All content in OwlV is cooked into archive files which are validated during cooker time, and loaded by the server. This cook/validation step helps avoid runtime issues and makes deployment easier.

Anytime you add, remove or modify (the file name, not contents), you must update the associated JSON descriptor in \Descriptors\

Files are defined by providing their filename, and type (e.g. ClientScript, ServerScript, etc) - please refer to existing descriptors for reference.

Using the Cooker

By default, the cooker uses symbolic links to allow for fast / near-instant iteration times. In 'Debug Full Cook' and 'Release' targets, a full cook, including code analysis, archive and unarchive are performed.

OwlV requires Windows Developer Mode to be enabled. This can be enabled by going to Start -> Developer Mode -> and checking the first checkbox.

Build Configurations

  • Debug x64 - Recommended for development, also enables 'fast iteration mode' for faster dev times
  • Debug Full Cook x64 - Simulates a release style cook, but uses debug binaries. Only recommended for diagnosing cook issues
  • Release x64 - Recommended for your server build

For running in debugger, you should start the Boot project as your startup project.

What variables should be I be changing?

You can search the code base for "TODO_GITHUB" for variables which you will want to update.

Please also refer to the environment variables below, which are required.

Database Configuration

The database connections must be configured before running the server. Set the following environment variables:

  • GAME_DATABASE_IP
  • GAME_DATABASE_NAME
  • GAME_DATABASE_USERNAME
  • GAME_DATABASE_PASSWORD
  • GAME_DATABASE_PORT
  • AUTH_DATABASE_IP
  • AUTH_DATABASE_NAME
  • AUTH_DATABASE_USERNAME
  • AUTH_DATABASE_PASSWORD
  • AUTH_DATABASE_PORT

Web Server Configuration

The game server runs a web server for remote UCP calls. The user is always ucp. Calling URL is http://IP:9001/RequestString

By default this will only bind to 127.0.0.1. Set the environment variable below to bind to an external IP (required for LIVE server):

  • HTTP_SERVER_BIND_IP
  • HTTP_SERVER_PASS
  • HTTP_SERVER_WHITELIST The IP that will be making calls

Configuration

The following environment variables can be used to tweak settings:

Required

  • GAME_DATABASE_IP
  • GAME_DATABASE_NAME
  • GAME_DATABASE_USERNAME
  • GAME_DATABASE_PASSWORD
  • GAME_DATABASE_PORT
  • AUTH_DATABASE_IP
  • AUTH_DATABASE_NAME
  • AUTH_DATABASE_USERNAME
  • AUTH_DATABASE_PASSWORD
  • AUTH_DATABASE_PORT

Required for LIVE, Optional for Dev

Variable Default Description
HTTP_SERVER_BIND_IP 127.0.0.1 The IP for the HTTP server to bind to
HTTP_SERVER_PASS 0E0CECB2B6808B3BECDF28936DE54AE6481 The authentication key for the HTTP API
SENTRY_DSN Disabled Sentry DSN
DISCORD_BOT_TOKEN Disabled Discord Bot Token
DISCORD_CLIENT_ID Disabled Discord Application Client ID
ELASTICSEARCH_HOSTS http://localhost:9200 The hosts for the ElasticSearch server, delimited by spaces
ELASTICSEARCH_USERNAME `` The authentication username for the ElasticSearch server
ELASTICSEARCH_PASSWORD `` The authentication password for the ElasticSearch server

Obtaining RAGE

You can obtain a verified working version of Rage server from the Releases page on GitHub. Please choose the highest revision and extract it into Owl -> V -> Output -> .

Alternatively, you can deploy any version of RAGE you wish by simply copying the server binaries from your rage server folder and copying in the C# Bridge which is found on the forums (www.rage.mp).

After copying in your binaries, you will have to compile the source code which runs the cooker, which will copy all server output into the folder above.

Optional

None yet!

Useful things

Using Sentry

For more detailed docs see the github project or the official docs.

Note: You may need to add the Sentry Nuget package to the resource you're working in.

Examples

// Record any uncaught exceptions in a block of code
// This especially ensures that any events are sent before leaving this bloick
using (Sentry.SentrySdk.Init()) {
	// Code
}

Sentry.SentrySdk.AddBreadcrumb("Started owl_core", "Resource start");
// Code

// Use a warning level
Sentry.SentrySdk.AddBreadcrumb("Some failure", "Resource start failed", level: Sentry.Protocol.BreadcrumbLevel.Warning);

// Code

// Immediately record an event with the message and any previous breadcrumbs
Sentry.SentrySdk.CaptureMessage("Uh oh", Sentry.Protocol.SentryLevel.Warning);

// Code

// A log event that adds some information about the user before sending it
// Usually would be done in a try{}catch{}
Sentry.SentryEvent logEvent = new Sentry.SentryEvent(new Exception("Error with questions"));
logEvent.User.Username = "testing";
logEvent.User.Id = "123";
Sentry.SentrySdk.CaptureEvent(logEvent);

// Code

// Use a tag for anything in your scope
// Allows for easy searching and categorizing
Sentry.SentrySdk.CongiureScope(scope => {
	scope.SetTag("mycustomtag", "lul");
	// Change the default 'error' level to 'fatal', 'error', 'warning', 'info', or 'debug'
	scope.Level = Sentry.SentryLevel.Warning;
	// Any extra key-value pairs that aren't tags
	scope.SetExtra("character_name", "Chaos Maxime");
})

// Might be useful to also pop your scope so that you aren't adding onto another event
// https://docs.sentry.io/enriching-error-data/scopes/?platform=csharp

Discord Bot Setup

  • Create an app on discord's developer portal for the application.
  • Create your bot with the following permissions
    • Change Nickname
    • Manage Nicknames
    • Manage Roles
    • Send Messages
    • Read Message History
    • Add Reactions
    • Read Messages
    • Embed Links
    • Mention Everyone
  • These permissions will result in a URL like so, to add it to your server: https://discordapp.com/oauth2/authorize?client_id=&scope=bot&permissions=469977152
  • Set the DISCORD_BOT_TOKEN environment variable
  • To allow linking to discord users, set the DISCORD_CLIENT_ID variable.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].