diff --git a/Data/BindingSets/Default Bindings.pbt b/Data/BindingSets/Default Bindings.pbt new file mode 100644 index 0000000..2084511 --- /dev/null +++ b/Data/BindingSets/Default Bindings.pbt @@ -0,0 +1,612 @@ +Assets { + Id: 736360303936294653 + Name: "Default Bindings" + PlatformAssetType: 29 + SerializationVersion: 119 + BindingSetAsset { + Bindings { + BindingType { + Value: "mc:ebindingtype:basic" + } + BasicBindingData { + BasicInputs { + KeyboardPrimary { + Value: "mc:ebindingkeyboard:spacebar" + } + KeyboardSecondary { + Value: "mc:ebindingkeyboard:none" + } + Controller { + Value: "mc:ebindinggamepad:a" + } + } + } + Action: "Jump" + Description: "Make the character jump." + CoreBehavior { + Value: "mc:ecorebehavior:jump" + } + IsEnabledOnStart: true + } + Bindings { + BindingType { + Value: "mc:ebindingtype:basic" + } + BasicBindingData { + BasicInputs { + KeyboardPrimary { + Value: "mc:ebindingkeyboard:leftcontrol" + } + KeyboardSecondary { + Value: "mc:ebindingkeyboard:c" + } + Controller { + Value: "mc:ebindinggamepad:b" + } + } + } + Action: "Crouch" + Description: "Enter crouch mode." + CoreBehavior { + Value: "mc:ecorebehavior:crouch" + } + IsEnabledOnStart: true + } + Bindings { + BindingType { + Value: "mc:ebindingtype:basic" + } + BasicBindingData { + BasicInputs { + KeyboardPrimary { + Value: "mc:ebindingkeyboard:g" + } + KeyboardSecondary { + Value: "mc:ebindingkeyboard:none" + } + Controller { + Value: "mc:ebindinggamepad:dpadup" + } + } + } + Action: "Mount" + Description: "Enter mount mode." + CoreBehavior { + Value: "mc:ecorebehavior:mount" + } + IsEnabledOnStart: true + } + Bindings { + BindingType { + Value: "mc:ebindingtype:basic" + } + BasicBindingData { + BasicInputs { + KeyboardPrimary { + Value: "mc:ebindingkeyboard:f" + } + KeyboardSecondary { + Value: "mc:ebindingkeyboard:none" + } + Controller { + Value: "mc:ebindinggamepad:x" + } + } + } + Action: "Interact" + Description: "Interact with triggers." + CoreBehavior { + Value: "mc:ecorebehavior:interact" + } + IsEnabledOnStart: true + } + Bindings { + BindingType { + Value: "mc:ebindingtype:basic" + } + BasicBindingData { + BasicInputs { + KeyboardPrimary { + Value: "mc:ebindingkeyboard:enter" + } + KeyboardSecondary { + Value: "mc:ebindingkeyboard:none" + } + Controller { + Value: "mc:ebindinggamepad:none" + } + } + } + Action: "Chat" + Description: "Opens chat dialog and social menu." + CoreBehavior { + Value: "mc:ecorebehavior:chat" + } + IsEnabledOnStart: true + } + Bindings { + BindingType { + Value: "mc:ebindingtype:basic" + } + BasicBindingData { + BasicInputs { + KeyboardPrimary { + Value: "mc:ebindingkeyboard:tilde" + } + KeyboardSecondary { + Value: "mc:ebindingkeyboard:middleclick" + } + Controller { + Value: "mc:ebindinggamepad:view" + } + } + } + Action: "Slot Picker" + Description: "Reopens last opened picker menu." + CoreBehavior { + Value: "mc:ecorebehavior:slotpicker" + } + IsEnabledOnStart: true + } + Bindings { + BindingType { + Value: "mc:ebindingtype:directional" + } + DirectionalBindingData { + UpInputs { + KeyboardPrimary { + Value: "mc:ebindingkeyboard:w" + } + KeyboardSecondary { + Value: "mc:ebindingkeyboard:none" + } + Controller { + Value: "mc:ebindinggamepad:leftstickup" + } + } + LeftInputs { + KeyboardPrimary { + Value: "mc:ebindingkeyboard:a" + } + KeyboardSecondary { + Value: "mc:ebindingkeyboard:none" + } + Controller { + Value: "mc:ebindinggamepad:leftstickleft" + } + } + DownInputs { + KeyboardPrimary { + Value: "mc:ebindingkeyboard:s" + } + KeyboardSecondary { + Value: "mc:ebindingkeyboard:none" + } + Controller { + Value: "mc:ebindinggamepad:leftstickdown" + } + } + RightInputs { + KeyboardPrimary { + Value: "mc:ebindingkeyboard:d" + } + KeyboardSecondary { + Value: "mc:ebindingkeyboard:none" + } + Controller { + Value: "mc:ebindinggamepad:leftstickright" + } + } + } + Action: "Move" + Description: "Moves the character." + CoreBehavior { + Value: "mc:ecorebehavior:move" + } + IsEnabledOnStart: true + } + Bindings { + BindingType { + Value: "mc:ebindingtype:axis" + } + AxisBindingData { + IncreaseInputs { + KeyboardPrimary { + Value: "mc:ebindingkeyboard:spacebar" + } + KeyboardSecondary { + Value: "mc:ebindingkeyboard:none" + } + Controller { + Value: "mc:ebindinggamepad:a" + } + } + DecreaseInputs { + KeyboardPrimary { + Value: "mc:ebindingkeyboard:leftcontrol" + } + KeyboardSecondary { + Value: "mc:ebindingkeyboard:c" + } + Controller { + Value: "mc:ebindinggamepad:b" + } + } + } + Action: "Move Vertically" + Description: "Fly or swim vertically up and down." + CoreBehavior { + Value: "mc:ecorebehavior:movevertically" + } + IsEnabledOnStart: true + } + Bindings { + BindingType { + Value: "mc:ebindingtype:directional" + } + DirectionalBindingData { + UpInputs { + KeyboardPrimary { + Value: "mc:ebindingkeyboard:mouseup" + } + KeyboardSecondary { + Value: "mc:ebindingkeyboard:none" + } + Controller { + Value: "mc:ebindinggamepad:rightstickup" + } + } + LeftInputs { + KeyboardPrimary { + Value: "mc:ebindingkeyboard:mouseleft" + } + KeyboardSecondary { + Value: "mc:ebindingkeyboard:none" + } + Controller { + Value: "mc:ebindinggamepad:rightstickleft" + } + } + DownInputs { + KeyboardPrimary { + Value: "mc:ebindingkeyboard:mousedown" + } + KeyboardSecondary { + Value: "mc:ebindingkeyboard:none" + } + Controller { + Value: "mc:ebindinggamepad:rightstickdown" + } + } + RightInputs { + KeyboardPrimary { + Value: "mc:ebindingkeyboard:mouseright" + } + KeyboardSecondary { + Value: "mc:ebindingkeyboard:none" + } + Controller { + Value: "mc:ebindinggamepad:rightstickright" + } + } + } + Action: "Look" + Description: "Controls the camera." + CoreBehavior { + Value: "mc:ecorebehavior:look" + } + IsEnabledOnStart: true + } + Bindings { + BindingType { + Value: "mc:ebindingtype:axis" + } + AxisBindingData { + IncreaseInputs { + KeyboardPrimary { + Value: "mc:ebindingkeyboard:scrolldown" + } + KeyboardSecondary { + Value: "mc:ebindingkeyboard:none" + } + Controller { + Value: "mc:ebindinggamepad:rightbumper" + } + } + DecreaseInputs { + KeyboardPrimary { + Value: "mc:ebindingkeyboard:scrollup" + } + KeyboardSecondary { + Value: "mc:ebindingkeyboard:none" + } + Controller { + Value: "mc:ebindinggamepad:leftbumper" + } + } + } + Action: "Zoom" + Description: "Zoom in or out with the camera." + CoreBehavior { + Value: "mc:ecorebehavior:zoom" + } + IsEnabledOnStart: true + } + Bindings { + BindingType { + Value: "mc:ebindingtype:basic" + } + BasicBindingData { + BasicInputs { + KeyboardPrimary { + Value: "mc:ebindingkeyboard:leftalt" + } + KeyboardSecondary { + Value: "mc:ebindingkeyboard:none" + } + Controller { + Value: "mc:ebindinggamepad:none" + } + } + } + Action: "Push-to-Talk" + Description: "Toggle voice chat mode." + CoreBehavior { + Value: "mc:ecorebehavior:pushtotalk" + } + IsEnabledOnStart: true + } + Bindings { + BindingType { + Value: "mc:ebindingtype:basic" + } + BasicBindingData { + BasicInputs { + KeyboardPrimary { + Value: "mc:ebindingkeyboard:leftclick" + } + KeyboardSecondary { + Value: "mc:ebindingkeyboard:none" + } + Controller { + Value: "mc:ebindinggamepad:righttrigger" + } + } + } + Action: "Shoot" + Description: "Shoot ability of weapon or equipment." + CoreBehavior { + Value: "mc:ecorebehavior:weapon" + } + IsEnabledOnStart: true + } + Bindings { + BindingType { + Value: "mc:ebindingtype:basic" + } + BasicBindingData { + BasicInputs { + KeyboardPrimary { + Value: "mc:ebindingkeyboard:rightclick" + } + KeyboardSecondary { + Value: "mc:ebindingkeyboard:none" + } + Controller { + Value: "mc:ebindinggamepad:lefttrigger" + } + } + } + Action: "Aim" + Description: "Weapon or equipment aiming." + CoreBehavior { + Value: "mc:ecorebehavior:weapon" + } + Networked: true + IsEnabledOnStart: true + } + Bindings { + BindingType { + Value: "mc:ebindingtype:basic" + } + BasicBindingData { + BasicInputs { + KeyboardPrimary { + Value: "mc:ebindingkeyboard:r" + } + KeyboardSecondary { + Value: "mc:ebindingkeyboard:none" + } + Controller { + Value: "mc:ebindinggamepad:y" + } + } + } + Action: "Reload" + Description: "Reload ability on weapons." + CoreBehavior { + Value: "mc:ecorebehavior:weapon" + } + IsEnabledOnStart: true + } + Bindings { + BindingType { + Value: "mc:ebindingtype:basic" + } + BasicBindingData { + BasicInputs { + KeyboardPrimary { + Value: "mc:ebindingkeyboard:leftclick" + } + KeyboardSecondary { + Value: "mc:ebindingkeyboard:none" + } + Controller { + Value: "mc:ebindinggamepad:x" + } + } + } + Action: "Attack" + Description: "Attack ability for melee weapons or equipment." + CoreBehavior { + Value: "mc:ecorebehavior:equipment" + } + IsEnabledOnStart: true + } + Bindings { + BindingType { + Value: "mc:ebindingtype:basic" + } + BasicBindingData { + BasicInputs { + KeyboardPrimary { + Value: "mc:ebindingkeyboard:w" + } + KeyboardSecondary { + Value: "mc:ebindingkeyboard:none" + } + Controller { + Value: "mc:ebindinggamepad:righttrigger" + } + } + } + Action: "Vehicle Accelerate" + Description: "When driving, accelerate forward." + CoreBehavior { + Value: "mc:ecorebehavior:vehicleaccelerate" + } + IsEnabledOnStart: true + } + Bindings { + BindingType { + Value: "mc:ebindingtype:basic" + } + BasicBindingData { + BasicInputs { + KeyboardPrimary { + Value: "mc:ebindingkeyboard:s" + } + KeyboardSecondary { + Value: "mc:ebindingkeyboard:none" + } + Controller { + Value: "mc:ebindinggamepad:lefttrigger" + } + } + } + Action: "Vehicle Reverse" + Description: "When driving, stop the vehicle and reverse." + CoreBehavior { + Value: "mc:ecorebehavior:vehiclereverse" + } + IsEnabledOnStart: true + } + Bindings { + BindingType { + Value: "mc:ebindingtype:axis" + } + AxisBindingData { + IncreaseInputs { + KeyboardPrimary { + Value: "mc:ebindingkeyboard:d" + } + KeyboardSecondary { + Value: "mc:ebindingkeyboard:none" + } + Controller { + Value: "mc:ebindinggamepad:leftstickright" + } + } + DecreaseInputs { + KeyboardPrimary { + Value: "mc:ebindingkeyboard:a" + } + KeyboardSecondary { + Value: "mc:ebindingkeyboard:none" + } + Controller { + Value: "mc:ebindinggamepad:leftstickleft" + } + } + } + Action: "Vehicle Turn" + Description: "When driving, turn the vehicle." + CoreBehavior { + Value: "mc:ecorebehavior:vehicleturn" + } + IsEnabledOnStart: true + } + Bindings { + BindingType { + Value: "mc:ebindingtype:basic" + } + BasicBindingData { + BasicInputs { + KeyboardPrimary { + Value: "mc:ebindingkeyboard:spacebar" + } + KeyboardSecondary { + Value: "mc:ebindingkeyboard:none" + } + Controller { + Value: "mc:ebindinggamepad:b" + } + } + } + Action: "Vehicle Handbrake" + Description: "When driving, apply the handbrake." + CoreBehavior { + Value: "mc:ecorebehavior:vehiclehandbrake" + } + IsEnabledOnStart: true + } + Bindings { + BindingType { + Value: "mc:ebindingtype:basic" + } + BasicBindingData { + BasicInputs { + KeyboardPrimary { + Value: "mc:ebindingkeyboard:leftclick" + } + KeyboardSecondary { + Value: "mc:ebindingkeyboard:none" + } + Controller { + Value: "mc:ebindinggamepad:a" + } + } + } + Action: "Vehicle Shoot" + Description: "Shoot ability on vehicle." + CoreBehavior { + Value: "mc:ecorebehavior:vehicle" + } + IsEnabledOnStart: true + } + Bindings { + BindingType { + Value: "mc:ebindingtype:basic" + } + BasicBindingData { + BasicInputs { + KeyboardPrimary { + Value: "mc:ebindingkeyboard:f" + } + KeyboardSecondary { + Value: "mc:ebindingkeyboard:none" + } + Controller { + Value: "mc:ebindinggamepad:x" + } + } + } + Action: "Vehicle Exit" + Description: "When driving, exit the vehicle." + CoreBehavior { + Value: "mc:ecorebehavior:vehicleexit" + } + IsEnabledOnStart: true + } + } +} diff --git a/Data/DataTables/VIP Teleporters.asset.pbt b/Data/DataTables/VIP Teleporters.asset.pbt new file mode 100644 index 0000000..8fd6585 --- /dev/null +++ b/Data/DataTables/VIP Teleporters.asset.pbt @@ -0,0 +1,9 @@ +Assets { + Id: 7055115913700538926 + Name: "VIP Teleporters" + PlatformAssetType: 31 + SerializationVersion: 119 + VirtualFolderPath: "VIP Teleporter" + DataTableAsset { + } +} diff --git a/Data/DataTables/VIP Teleporters.csv b/Data/DataTables/VIP Teleporters.csv new file mode 100644 index 0000000..eb77283 --- /dev/null +++ b/Data/DataTables/VIP Teleporters.csv @@ -0,0 +1,2 @@ +"To[Core Object Reference]","From[Core Object Reference]","TwoWay[Bool]","VIP[Bool]","VIPTeams[String]" +"B3A1EA4999A133F9","3A23135EA674DF0E","True","True","1,2" \ No newline at end of file diff --git a/Data/Materials/Custom Edge Line Wavy.pbt b/Data/Materials/Custom Edge Line Wavy.pbt new file mode 100644 index 0000000..7d97d95 --- /dev/null +++ b/Data/Materials/Custom Edge Line Wavy.pbt @@ -0,0 +1,89 @@ +Assets { + Id: 2856230907151699230 + Name: "Custom Edge Line Wavy" + PlatformAssetType: 13 + SerializationVersion: 119 + VirtualFolderPath: "VIP Teleporter" + CustomMaterialAsset { + BaseMaterialId: 7560021599217454932 + ParameterOverrides { + Overrides { + Name: "noise scale" + Float: 0.174100369 + } + Overrides { + Name: "speed" + Vector { + Z: 4.67078495 + } + } + Overrides { + Name: "speed 2" + Vector { + Z: 1.97076285 + } + } + Overrides { + Name: "noise spread" + Float: 1000 + } + Overrides { + Name: "fresnel" + Float: 1.9203167 + } + Overrides { + Name: "vertical fade" + Float: 2.85145903 + } + Overrides { + Name: "color" + Color { + R: 0.938857317 + G: 0.954000115 + A: 1 + } + } + Overrides { + Name: "noise color" + Color { + R: 0.97 + G: 0.969999969 + A: 1 + } + } + Overrides { + Name: "overall brightness" + Float: 0.174100369 + } + Overrides { + Name: "edge line color" + Color { + R: 0.962476313 + G: 0.978000045 + A: 1 + } + } + Overrides { + Name: "edge line sharpness" + Float: 0.0972033665 + } + Overrides { + Name: "edge line spread" + Float: 40.4915962 + } + Overrides { + Name: "edge line brightness" + Float: 15.9586649 + } + } + Assets { + Id: 7560021599217454932 + Name: "Edge Line Wavy" + PlatformAssetType: 2 + PrimaryAsset { + AssetType: "MaterialAssetRef" + AssetId: "fxma_add_edgeline" + } + } + } +} diff --git a/Data/ProjectSettings.pbt b/Data/ProjectSettings.pbt new file mode 100644 index 0000000..ce13811 --- /dev/null +++ b/Data/ProjectSettings.pbt @@ -0,0 +1 @@ +MainScene: "Main" diff --git a/Data/Scenes/Main/AssetManifest.pbt b/Data/Scenes/Main/AssetManifest.pbt new file mode 100644 index 0000000..650f330 --- /dev/null +++ b/Data/Scenes/Main/AssetManifest.pbt @@ -0,0 +1,27 @@ +Assets { + Id: 14510248435649525006 + Name: "Container - Square Thin 01" + PlatformAssetType: 1 + PrimaryAsset { + AssetType: "StaticMeshAssetRef" + AssetId: "sm_container_square_thin_ref" + } +} +Assets { + Id: 9654515728173206549 + Name: "Basic Hologram" + PlatformAssetType: 2 + PrimaryAsset { + AssetType: "MaterialAssetRef" + AssetId: "fxmi_basic_hologram" + } +} +Assets { + Id: 6621025247359343293 + Name: "Orbitron Bold" + PlatformAssetType: 28 + PrimaryAsset { + AssetType: "FontAssetRef" + AssetId: "OrbitronBold_ref" + } +} diff --git a/Data/Scenes/Main/Gameplay Settings/AssetManifest.pbt b/Data/Scenes/Main/Gameplay Settings/AssetManifest.pbt new file mode 100644 index 0000000..e69de29 diff --git a/Data/Scenes/Main/Gameplay Settings/Tree.pbt b/Data/Scenes/Main/Gameplay Settings/Tree.pbt new file mode 100644 index 0000000..591fe3e --- /dev/null +++ b/Data/Scenes/Main/Gameplay Settings/Tree.pbt @@ -0,0 +1,399 @@ +Name: "Gameplay Settings" +RootId: 9086936746104183945 +Objects { + Id: 14713340454944924967 + Name: "Third Person Camera Settings" + Transform { + Location { + Z: -1000 + } + Rotation { + } + Scale { + X: 1 + Y: 1 + Z: 1 + } + } + ParentId: 9086936746104183945 + ChildIds: 4226120016796708080 + ChildIds: 724324913679364851 + UnregisteredParameters { + } + Collidable_v2 { + Value: "mc:ecollisionsetting:inheritfromparent" + } + Visible_v2 { + Value: "mc:evisibilitysetting:inheritfromparent" + } + CameraCollidable { + Value: "mc:ecollisionsetting:inheritfromparent" + } + Folder { + IsGroup: true + } + NetworkRelevanceDistance { + Value: "mc:eproxyrelevance:critical" + } + IsReplicationEnabledByDefault: true +} +Objects { + Id: 724324913679364851 + Name: "Client Context" + Transform { + Location { + } + Rotation { + } + Scale { + X: 1 + Y: 1 + Z: 1 + } + } + ParentId: 14713340454944924967 + ChildIds: 3567959178173361743 + UnregisteredParameters { + } + Collidable_v2 { + Value: "mc:ecollisionsetting:inheritfromparent" + } + Visible_v2 { + Value: "mc:evisibilitysetting:inheritfromparent" + } + CameraCollidable { + Value: "mc:ecollisionsetting:inheritfromparent" + } + NetworkContext { + MinDetailLevel { + Value: "mc:edetaillevel:low" + } + MaxDetailLevel { + Value: "mc:edetaillevel:ultra" + } + } + NetworkRelevanceDistance { + Value: "mc:eproxyrelevance:critical" + } + IsReplicationEnabledByDefault: true +} +Objects { + Id: 3567959178173361743 + Name: "Third Person Camera" + Transform { + Location { + Z: 500 + } + Rotation { + } + Scale { + X: 1 + Y: 1 + Z: 1 + } + } + ParentId: 724324913679364851 + UnregisteredParameters { + } + Collidable_v2 { + Value: "mc:ecollisionsetting:inheritfromparent" + } + Visible_v2 { + Value: "mc:evisibilitysetting:inheritfromparent" + } + CameraCollidable { + Value: "mc:ecollisionsetting:inheritfromparent" + } + EditorIndicatorVisibility { + Value: "mc:eindicatorvisibility:alwaysvisible" + } + Camera { + UseAsDefault: true + AttachToLocalPlayer: true + InitialDistance: 400 + MinDistance: 300 + MaxDistance: 600 + PositionOffset { + Y: 60 + } + RotationOffset { + } + FieldOfView: 90 + ViewWidth: 1200 + RotationMode { + Value: "mc:erotationmode:lookangle" + } + MinPitch: -89 + MaxPitch: 89 + DoesPositionOffsetSpring: true + IsCameraCollisionEnabled: true + } + NetworkRelevanceDistance { + Value: "mc:eproxyrelevance:critical" + } + IsReplicationEnabledByDefault: true +} +Objects { + Id: 4226120016796708080 + Name: "Third Person Player Settings" + Transform { + Location { + } + Rotation { + } + Scale { + X: 1 + Y: 1 + Z: 1 + } + } + ParentId: 14713340454944924967 + UnregisteredParameters { + } + Collidable_v2 { + Value: "mc:ecollisionsetting:inheritfromparent" + } + Visible_v2 { + Value: "mc:evisibilitysetting:inheritfromparent" + } + CameraCollidable { + Value: "mc:ecollisionsetting:inheritfromparent" + } + Settings { + IsDefault: true + PlayerMovementSettings { + WalkSpeed: 640 + MaxAcceleration: 1800 + WalkableFloorAngle: 44 + JumpMaxCount: 1 + JumpVelocity: 900 + GroundFriction: 8 + GravityScale: 1.9 + MaxSwimSpeed: 420 + Buoyancy: 1 + TouchForceFactor: 1 + BrakingDecelerationFlying: 600 + MaxFlightSpeed: 600 + MovementControlMode { + Value: "mc:emovementcontrolmode:lookrelative" + } + LookControlMode { + Value: "mc:elookcontrolmode:relative" + } + FacingMode { + Value: "mc:efacingmode:faceaimwhenactive" + } + DefaultRotationRate: 540 + SlideRotationRate: 20 + LookAtCursorProjectionPlane { + Value: "mc:eprojectionplane:xy" + } + MountedMaxAcceleration: 1800 + MountedWalkSpeed: 1280 + MountedJumpMaxCount: 1 + MountedJumpVelocity: 900 + HeadVisibleToSelf: true + IsSlideEnabled: true + IsCrouchEnabled: true + IsJumpEnabled: true + CanMoveForward: true + CanMoveBackward: true + CanMoveLeft: true + CanMoveRight: true + AbilityAimMode { + Value: "mc:eabilityaimmode:viewrelative" + } + AppearanceChannelingTime: 2 + MountChannelingTime: 2 + FlipOnMultiJump: true + CanMoveUp: true + CanMoveDown: true + IsMountEnabled: true + MaxHitpoints: 100 + PlayerMasterVolumeMultiplier: 1 + ComplexCollision: true + } + } + NetworkRelevanceDistance { + Value: "mc:eproxyrelevance:critical" + } + IsReplicationEnabledByDefault: true +} +Objects { + Id: 16123814510452902121 + Name: "Default Bindings" + Transform { + Location { + Z: -1000 + } + Rotation { + } + Scale { + X: 1 + Y: 1 + Z: 1 + } + } + ParentId: 9086936746104183945 + UnregisteredParameters { + } + Collidable_v2 { + Value: "mc:ecollisionsetting:inheritfromparent" + } + Visible_v2 { + Value: "mc:evisibilitysetting:inheritfromparent" + } + CameraCollidable { + Value: "mc:ecollisionsetting:inheritfromparent" + } + EditorIndicatorVisibility { + Value: "mc:eindicatorvisibility:visiblewhenselected" + } + BindingSet { + BindingSetAsset { + Id: 736360303936294653 + } + } + NetworkRelevanceDistance { + Value: "mc:eproxyrelevance:critical" + } + IsReplicationEnabledByDefault: true +} +Objects { + Id: 7367735074338159388 + Name: "Game Settings" + Transform { + Location { + } + Rotation { + } + Scale { + X: 1 + Y: 1 + Z: 1 + } + } + ParentId: 9086936746104183945 + UnregisteredParameters { + } + Collidable_v2 { + Value: "mc:ecollisionsetting:inheritfromparent" + } + Visible_v2 { + Value: "mc:evisibilitysetting:inheritfromparent" + } + CameraCollidable { + Value: "mc:ecollisionsetting:inheritfromparent" + } + Settings { + IsDefault: true + GameSettings { + RagdollOnDeath: true + ChatMode { + Value: "mc:echatmode:teamandall" + } + ChatSettings { + ChatMode { + } + ChatPosition { + X: 40 + } + ChatSize { + X: 450 + Y: 400 + } + ChatHorizontalAlignment { + Value: "mc:ecorehorizontalalign:left" + } + ChatVerticalAlignment { + Value: "mc:ecorehorizontalalign:center" + } + } + PhysicsSettings { + MinContactOffset: 2 + MaxContactOffset: 8 + } + RelevanceSettings { + key: "decal" + value { + LowDistance: 4500 + MediumDistance: 7000 + HighDistance: 9000 + } + } + RelevanceSettings { + key: "light" + value { + LowDistance: 4500 + MediumDistance: 7000 + HighDistance: 9000 + } + } + RelevanceSettings { + key: "mergedmesh" + value { + LowDistance: 4500 + MediumDistance: 7000 + HighDistance: 9000 + } + } + RelevanceSettings { + key: "mesh" + value { + LowDistance: 4500 + MediumDistance: 7000 + HighDistance: 9000 + } + } + RelevanceSettings { + key: "vfx" + value { + LowDistance: 4500 + MediumDistance: 7000 + HighDistance: 9000 + } + } + VoiceChatSettings { + VoiceChatMode { + Value: "mc:evoicechatmode:all" + } + VoiceChannelType { + Value: "mc:evoicechanneltype:normal" + } + AudibleDistance: 6000 + ConversationalDistance: 1500 + AudioFadeModel { + Value: "mc:evoiceaudiofademodel:inverse" + } + AudioFadeIntensityByDistance: 1 + VoiceChatPosition { + X: -40 + Y: 40 + } + VoiceChatHorizontalAlignment { + Value: "mc:ecorehorizontalalign:right" + } + VoiceChatVerticalAlignment { + Value: "mc:ecoreverticalalign:top" + } + VoiceChatEntryHorizontalFlow { + Value: "mc:ecorehorizontalflow:righttoleft" + } + VoiceChatEntryVerticalFlow { + Value: "mc:ecoreverticalflow:toptobottom" + } + IsVoiceChatWidgetVisible: true + } + PlayerInteractDistance: 500 + PlayerInteractAngleDeg: 50 + PlayerStorageMode { + Value: "mc:eplayerstoragemode:disabled" + } + EnableNetworkedEventsQueuing: true + } + } + NetworkRelevanceDistance { + Value: "mc:eproxyrelevance:critical" + } + IsReplicationEnabledByDefault: true +} diff --git a/Data/Scenes/Main/Misc/AssetManifest.pbt b/Data/Scenes/Main/Misc/AssetManifest.pbt new file mode 100644 index 0000000..2fbeb90 --- /dev/null +++ b/Data/Scenes/Main/Misc/AssetManifest.pbt @@ -0,0 +1,45 @@ +Assets { + Id: 16910278292812118833 + Name: "Sun Light" + PlatformAssetType: 6 + PrimaryAsset { + AssetType: "BlueprintAssetRef" + AssetId: "CORESKY_SunLight" + } +} +Assets { + Id: 15178201215096695187 + Name: "Asphalt 01" + PlatformAssetType: 2 + PrimaryAsset { + AssetType: "MaterialAssetRef" + AssetId: "mi_gen_asphault_001" + } +} +Assets { + Id: 12095835209017042614 + Name: "Cube" + PlatformAssetType: 1 + PrimaryAsset { + AssetType: "StaticMeshAssetRef" + AssetId: "sm_cube_002" + } +} +Assets { + Id: 11515840070784317904 + Name: "Skylight" + PlatformAssetType: 6 + PrimaryAsset { + AssetType: "BlueprintAssetRef" + AssetId: "CORESKY_Skylight" + } +} +Assets { + Id: 7887238662729938253 + Name: "Sky Dome" + PlatformAssetType: 6 + PrimaryAsset { + AssetType: "BlueprintAssetRef" + AssetId: "CORESKY_Sky" + } +} diff --git a/Data/Scenes/Main/Misc/Tree.pbt b/Data/Scenes/Main/Misc/Tree.pbt new file mode 100644 index 0000000..f471cf7 --- /dev/null +++ b/Data/Scenes/Main/Misc/Tree.pbt @@ -0,0 +1,506 @@ +Name: "Misc" +RootId: 12914027775484649988 +Objects { + Id: 14982843161775482339 + Name: "Default Floor" + Transform { + Location { + } + Rotation { + } + Scale { + X: 50 + Y: 50 + Z: 1 + } + } + ParentId: 12914027775484649988 + UnregisteredParameters { + Overrides { + Name: "ma:Shared_BaseMaterial:id" + AssetReference { + Id: 15178201215096695187 + } + } + } + Collidable_v2 { + Value: "mc:ecollisionsetting:inheritfromparent" + } + Visible_v2 { + Value: "mc:evisibilitysetting:inheritfromparent" + } + CameraCollidable { + Value: "mc:ecollisionsetting:inheritfromparent" + } + CoreMesh { + MeshAsset { + Id: 12095835209017042614 + } + Teams { + IsTeamCollisionEnabled: true + IsEnemyCollisionEnabled: true + } + InteractWithTriggers: true + StaticMesh { + Physics { + } + BoundsScale: 1 + } + } + Relevance { + Value: "mc:eproxyrelevance:critical" + } + NetworkRelevanceDistance { + Value: "mc:eproxyrelevance:critical" + } + IsReplicationEnabledByDefault: true +} +Objects { + Id: 10005074784157121906 + Name: "Default Sky" + Transform { + Location { + Z: 750 + } + Rotation { + } + Scale { + X: 1 + Y: 1 + Z: 1 + } + } + ParentId: 12914027775484649988 + ChildIds: 13551641546322277000 + ChildIds: 7155168770677928712 + ChildIds: 10505154200474359396 + UnregisteredParameters { + } + Collidable_v2 { + Value: "mc:ecollisionsetting:inheritfromparent" + } + Visible_v2 { + Value: "mc:evisibilitysetting:inheritfromparent" + } + CameraCollidable { + Value: "mc:ecollisionsetting:inheritfromparent" + } + Folder { + IsGroup: true + } + NetworkRelevanceDistance { + Value: "mc:eproxyrelevance:critical" + } + IsReplicationEnabledByDefault: true +} +Objects { + Id: 10505154200474359396 + Name: "Sun Light" + Transform { + Location { + } + Rotation { + Pitch: -45.8452454 + Yaw: 33.9371338 + Roll: 8.92731857 + } + Scale { + X: 1 + Y: 1 + Z: 1 + } + } + ParentId: 10005074784157121906 + UnregisteredParameters { + Overrides { + Name: "bp:Use Temperature" + Bool: false + } + Overrides { + Name: "bp:Light Color" + Color { + R: 1 + G: 0.955973327 + B: 0.73791039 + A: 1 + } + } + Overrides { + Name: "bp:Shape" + Int: 1 + } + Overrides { + Name: "bp:Size" + Float: 5 + } + Overrides { + Name: "bp:Light Shaft Bloom" + Bool: true + } + Overrides { + Name: "bp:Cast Volumetric Shadows" + Bool: false + } + Overrides { + Name: "bp:Light Shaft Mask Darkness" + Float: 0.5 + } + Overrides { + Name: "bp:Intensity" + Float: 3.5 + } + Overrides { + Name: "bp:Sun Disc Color" + Color { + R: 3 + G: 3 + B: 3 + A: 1 + } + } + Overrides { + Name: "bp:Light Shaft Bloom Scale" + Float: 0.2 + } + Overrides { + Name: "bp:Light Shaft Bloom Threshold" + Float: 0.05 + } + Overrides { + Name: "bp:Light Shaft Occlusion" + Bool: true + } + Overrides { + Name: "bp:Light Shaft Bloom Tint" + Color { + R: 1 + G: 0.998476863 + B: 0.77 + A: 1 + } + } + } + Collidable_v2 { + Value: "mc:ecollisionsetting:inheritfromparent" + } + Visible_v2 { + Value: "mc:evisibilitysetting:inheritfromparent" + } + CameraCollidable { + Value: "mc:ecollisionsetting:inheritfromparent" + } + Blueprint { + BlueprintAsset { + Id: 16910278292812118833 + } + } + NetworkRelevanceDistance { + Value: "mc:eproxyrelevance:critical" + } + IsReplicationEnabledByDefault: true +} +Objects { + Id: 7155168770677928712 + Name: "Skylight" + Transform { + Location { + } + Rotation { + } + Scale { + X: 1 + Y: 1 + Z: 1 + } + } + ParentId: 10005074784157121906 + UnregisteredParameters { + Overrides { + Name: "bp:Index" + Int: 3 + } + Overrides { + Name: "bp:Occlusion Contrast" + Float: 0 + } + Overrides { + Name: "bp:Intensity" + Float: 3 + } + Overrides { + Name: "bp:Lower Hemisphere Color" + Color { + R: 0.0666259378 + G: 0.0307134502 + A: 1 + } + } + Overrides { + Name: "bp:Occlusion Tint" + Color { + R: 0.0274509825 + G: 0.0274509825 + B: 0.0392156877 + A: 1 + } + } + Overrides { + Name: "bp:Occlusion Exponent" + Float: 0.4 + } + Overrides { + Name: "bp:Cast Shadows" + Bool: true + } + Overrides { + Name: "bp:Cast Volumetric Shadows" + Bool: false + } + Overrides { + Name: "bp:Tint Color" + Color { + R: 0.502886474 + G: 0.48514995 + B: 0.752942204 + A: 1 + } + } + } + Collidable_v2 { + Value: "mc:ecollisionsetting:inheritfromparent" + } + Visible_v2 { + Value: "mc:evisibilitysetting:inheritfromparent" + } + CameraCollidable { + Value: "mc:ecollisionsetting:inheritfromparent" + } + Blueprint { + BlueprintAsset { + Id: 11515840070784317904 + } + } + NetworkRelevanceDistance { + Value: "mc:eproxyrelevance:critical" + } + IsReplicationEnabledByDefault: true +} +Objects { + Id: 13551641546322277000 + Name: "Sky Dome" + Transform { + Location { + } + Rotation { + } + Scale { + X: 1 + Y: 1 + Z: 1 + } + } + ParentId: 10005074784157121906 + UnregisteredParameters { + Overrides { + Name: "bp:Zenith Color" + Color { + R: 0.0243181027 + G: 0.0633459464 + B: 0.212230757 + A: 0.886000037 + } + } + Overrides { + Name: "bp:Horizon Color" + Color { + R: 0.489468127 + G: 0.480969489 + B: 0.623960376 + A: 0.895000041 + } + } + Overrides { + Name: "bp:Haze Color" + Color { + R: 0.590618849 + G: 0.590618849 + B: 0.701101899 + A: 1 + } + } + Overrides { + Name: "bp:Use Sun Color for Cloud Color" + Bool: false + } + Overrides { + Name: "bp:Cloud Ambient Brightness" + Float: 3 + } + Overrides { + Name: "bp:Cloud Rim Brightness" + Float: 50 + } + Overrides { + Name: "bp:Cloud Opacity" + Float: 0 + } + Overrides { + Name: "bp:Cloud Ambient Color" + Color { + R: 2 + G: 2 + B: 2 + A: 1 + } + } + Overrides { + Name: "bp:Cloud Color" + Color { + R: 2 + G: 2 + B: 2 + A: 1 + } + } + Overrides { + Name: "bp:Cloud Shape" + Int: 4 + } + Overrides { + Name: "bp:Cloud Lighting Brightness" + Float: 1 + } + Overrides { + Name: "bp:Cloud Wisp Opacity" + Float: 0.4 + } + Overrides { + Name: "bp:Cloud Speed" + Float: 1 + } + Overrides { + Name: "bp:Brightness" + Float: 1 + } + Overrides { + Name: "bp:Background Clouds" + Bool: true + } + Overrides { + Name: "bp:High Cloud Index" + Int: 2 + } + Overrides { + Name: "bp:High Cloud Opacity" + Float: 0 + } + Overrides { + Name: "bp:High Cloud Noise Amount" + Float: 0.1 + } + Overrides { + Name: "bp:High Cloud Noise Scale" + Float: 0.2 + } + } + Collidable_v2 { + Value: "mc:ecollisionsetting:inheritfromparent" + } + Visible_v2 { + Value: "mc:evisibilitysetting:inheritfromparent" + } + CameraCollidable { + Value: "mc:ecollisionsetting:inheritfromparent" + } + Blueprint { + BlueprintAsset { + Id: 7887238662729938253 + } + } + NetworkRelevanceDistance { + Value: "mc:eproxyrelevance:critical" + } + IsReplicationEnabledByDefault: true +} +Objects { + Id: 16813558807825262224 + Name: "Spawn Point" + Transform { + Location { + Z: 165 + } + Rotation { + } + Scale { + X: 1 + Y: 1 + Z: 1 + } + } + ParentId: 12914027775484649988 + UnregisteredParameters { + } + Collidable_v2 { + Value: "mc:ecollisionsetting:inheritfromparent" + } + Visible_v2 { + Value: "mc:evisibilitysetting:inheritfromparent" + } + CameraCollidable { + Value: "mc:ecollisionsetting:inheritfromparent" + } + EditorIndicatorVisibility { + Value: "mc:eindicatorvisibility:alwaysvisible" + } + PlayerSpawnPoint { + TeamInt: 1 + PlayerScaleMultiplier: 1 + SpawnEffectsTemplate { + Id: 841534158063459245 + } + ShouldDecrowdPlayers: true + } + NetworkRelevanceDistance { + Value: "mc:eproxyrelevance:critical" + } + IsReplicationEnabledByDefault: true +} +Objects { + Id: 9086936746104183945 + Name: "Gameplay Settings" + Transform { + Location { + Z: 50 + } + Rotation { + } + Scale { + X: 1 + Y: 1 + Z: 1 + } + } + ParentId: 12914027775484649988 + UnregisteredParameters { + } + Collidable_v2 { + Value: "mc:ecollisionsetting:inheritfromparent" + } + Visible_v2 { + Value: "mc:evisibilitysetting:inheritfromparent" + } + CameraCollidable { + Value: "mc:ecollisionsetting:inheritfromparent" + } + EditorIndicatorVisibility { + Value: "mc:eindicatorvisibility:visiblewhenselected" + } + Folder { + IsFilePartition: true + FilePartitionName: "Gameplay Settings" + } + NetworkRelevanceDistance { + Value: "mc:eproxyrelevance:critical" + } + IsReplicationEnabledByDefault: true +} diff --git a/Data/Scenes/Main/SceneMeta.pbt b/Data/Scenes/Main/SceneMeta.pbt new file mode 100644 index 0000000..c73836e --- /dev/null +++ b/Data/Scenes/Main/SceneMeta.pbt @@ -0,0 +1,5 @@ +SceneName: "Main" +SceneId: "d0c346e0482efa6deed1f8ba52a53846" +SceneCreationDateTime: 637646854020000000 +IncludeForPublish: true +MaxPlayers: 8 diff --git a/Data/Scenes/Main/SceneServerData.pb b/Data/Scenes/Main/SceneServerData.pb new file mode 100644 index 0000000..e69de29 diff --git a/Data/Scenes/Main/Tree.pbt b/Data/Scenes/Main/Tree.pbt new file mode 100644 index 0000000..e6cd1d3 --- /dev/null +++ b/Data/Scenes/Main/Tree.pbt @@ -0,0 +1,316 @@ +Name: "Root" +RootId: 4781671109827199097 +Objects { + Id: 4781671109827199097 + Name: "Root" + Transform { + Location { + } + Rotation { + } + Scale { + X: 1 + Y: 1 + Z: 1 + } + } + ChildIds: 12914027775484649988 + ChildIds: 12637903789536783819 + ChildIds: 7341248590715819865 + ChildIds: 6500020569956085326 + UnregisteredParameters { + } + Collidable_v2 { + Value: "mc:ecollisionsetting:forceon" + } + Visible_v2 { + Value: "mc:evisibilitysetting:forceon" + } + CameraCollidable { + Value: "mc:ecollisionsetting:inheritfromparent" + } + Folder { + } + NetworkRelevanceDistance { + Value: "mc:eproxyrelevance:critical" + } + IsReplicationEnabledByDefault: true +} +Objects { + Id: 6500020569956085326 + Name: "VIP Teleporter" + Transform { + Scale { + X: 1 + Y: 1 + Z: 1 + } + } + ParentId: 4781671109827199097 + TemplateInstance { + ParameterOverrideMap { + key: 3086651369025726795 + value { + Overrides { + Name: "Name" + String: "VIP Teleporter" + } + Overrides { + Name: "Position" + Vector { + X: 650 + } + } + Overrides { + Name: "cs:ShowName" + Bool: true + } + Overrides { + Name: "cs:Name" + String: "Enter VIP" + } + } + } + TemplateAsset { + Id: 9073863231868576840 + } + } +} +Objects { + Id: 7341248590715819865 + Name: "VIP Teleporter" + Transform { + Location { + X: 537.06543 + Y: 432.127075 + } + Rotation { + } + Scale { + X: 1 + Y: 1 + Z: 1 + } + } + ParentId: 4781671109827199097 + TemplateInstance { + ParameterOverrideMap { + key: 3086651369025726795 + value { + Overrides { + Name: "Name" + String: "VIP Teleporter" + } + Overrides { + Name: "Position" + Vector { + X: 1500 + } + } + Overrides { + Name: "Rotation" + Rotator { + } + } + Overrides { + Name: "cs:ShowName" + Bool: true + } + Overrides { + Name: "cs:Name" + String: "Exit VIP" + } + } + } + TemplateAsset { + Id: 9073863231868576840 + } + } +} +Objects { + Id: 12637903789536783819 + Name: "VIP Zone" + Transform { + Location { + X: 1222.08057 + Z: 350 + } + Rotation { + } + Scale { + X: 1 + Y: 1 + Z: 1 + } + } + ParentId: 4781671109827199097 + ChildIds: 8412332537460027227 + ChildIds: 1434417448979603431 + Collidable_v2 { + Value: "mc:ecollisionsetting:inheritfromparent" + } + Visible_v2 { + Value: "mc:evisibilitysetting:inheritfromparent" + } + CameraCollidable { + Value: "mc:ecollisionsetting:inheritfromparent" + } + EditorIndicatorVisibility { + Value: "mc:eindicatorvisibility:visiblewhenselected" + } + Folder { + IsGroup: true + } + NetworkRelevanceDistance { + Value: "mc:eproxyrelevance:critical" + } + IsReplicationEnabledByDefault: true +} +Objects { + Id: 1434417448979603431 + Name: "World Text" + Transform { + Location { + X: -277.919312 + } + Rotation { + Yaw: -179.999985 + } + Scale { + X: 5 + Y: 5 + Z: 5 + } + } + ParentId: 12637903789536783819 + Collidable_v2 { + Value: "mc:ecollisionsetting:inheritfromparent" + } + Visible_v2 { + Value: "mc:evisibilitysetting:inheritfromparent" + } + CameraCollidable { + Value: "mc:ecollisionsetting:inheritfromparent" + } + EditorIndicatorVisibility { + Value: "mc:eindicatorvisibility:visiblewhenselected" + } + Text { + Text: "VIP ZONE" + FontAsset { + Id: 6621025247359343293 + } + Color { + A: 1 + } + HorizontalAlignment { + Value: "mc:ecoretexthorizontalalign:center" + } + VerticalAlignment { + Value: "mc:ecoretextverticalalign:center" + } + } + NetworkRelevanceDistance { + Value: "mc:eproxyrelevance:critical" + } + IsReplicationEnabledByDefault: true +} +Objects { + Id: 8412332537460027227 + Name: "Container - Square Thin 01" + Transform { + Location { + X: 277.919434 + Z: 750 + } + Rotation { + Roll: -179.999985 + } + Scale { + X: 11 + Y: 11 + Z: 11 + } + } + ParentId: 12637903789536783819 + UnregisteredParameters { + Overrides { + Name: "ma:Shared_BaseMaterial:id" + AssetReference { + Id: 9654515728173206549 + } + } + } + Collidable_v2 { + Value: "mc:ecollisionsetting:inheritfromparent" + } + Visible_v2 { + Value: "mc:evisibilitysetting:inheritfromparent" + } + CameraCollidable { + Value: "mc:ecollisionsetting:inheritfromparent" + } + EditorIndicatorVisibility { + Value: "mc:eindicatorvisibility:visiblewhenselected" + } + CoreMesh { + MeshAsset { + Id: 14510248435649525006 + } + Teams { + IsTeamCollisionEnabled: true + IsEnemyCollisionEnabled: true + } + StaticMesh { + Physics { + Mass: 100 + LinearDamping: 0.01 + } + BoundsScale: 1 + } + } + Relevance { + Value: "mc:eproxyrelevance:critical" + } + NetworkRelevanceDistance { + Value: "mc:eproxyrelevance:critical" + } + IsReplicationEnabledByDefault: true +} +Objects { + Id: 12914027775484649988 + Name: "Misc" + Transform { + Location { + Z: -50 + } + Rotation { + } + Scale { + X: 1 + Y: 1 + Z: 1 + } + } + ParentId: 4781671109827199097 + Collidable_v2 { + Value: "mc:ecollisionsetting:inheritfromparent" + } + Visible_v2 { + Value: "mc:evisibilitysetting:inheritfromparent" + } + CameraCollidable { + Value: "mc:ecollisionsetting:inheritfromparent" + } + EditorIndicatorVisibility { + Value: "mc:eindicatorvisibility:visiblewhenselected" + } + Folder { + IsFilePartition: true + FilePartitionName: "Misc" + } + NetworkRelevanceDistance { + Value: "mc:eproxyrelevance:critical" + } + IsReplicationEnabledByDefault: true +} diff --git a/Data/Scripts/API_VIPTeleporter.asset.pbt b/Data/Scripts/API_VIPTeleporter.asset.pbt new file mode 100644 index 0000000..6bab5f9 --- /dev/null +++ b/Data/Scripts/API_VIPTeleporter.asset.pbt @@ -0,0 +1,17 @@ +Assets { + Id: 8954907142092746216 + Name: "API_VIPTeleporter" + PlatformAssetType: 3 + TextAsset { + CustomParameters { + Overrides { + Name: "cs:Teleporters" + AssetReference { + Id: 7055115913700538926 + } + } + } + } + SerializationVersion: 119 + VirtualFolderPath: "VIP Teleporter" +} diff --git a/Data/Scripts/API_VIPTeleporter.lua b/Data/Scripts/API_VIPTeleporter.lua new file mode 100644 index 0000000..c0e5bf9 --- /dev/null +++ b/Data/Scripts/API_VIPTeleporter.lua @@ -0,0 +1,37 @@ +local TELEPORTERS = require(script:GetCustomProperty("Teleporters")) + +local API = {} + +local function TrimSplit(str) + local spl = {CoreString.Split(str, {delimiters = ",", removeEmptyResults = true})} + local result = {} + for _,i in ipairs(spl) do + table.insert(result, CoreString.Trim(i)) + end + return result +end + +local function IsAvailable(row, player) + local teams = TrimSplit(row.VIPTeams) + for _, team in ipairs(teams) do + if player.team == tonumber(team) then + return row.VIP + end + end + return not row.VIP +end + +function API.GetConnectedTeleport(teleporter, player) + for index, row in ipairs(TELEPORTERS) do + + if(row.From ~= nil and row.From:GetObject() == teleporter and IsAvailable(row, player)) then + return row.To:GetObject(), row + elseif(row.To ~= nil and row.To:GetObject() == teleporter and row.TwoWay and IsAvailable(row, player)) then + return row.From:GetObject(), row + end + end + + return nil, nil +end + +return API \ No newline at end of file diff --git a/Data/Scripts/VIPTeleporter_Client.asset.pbt b/Data/Scripts/VIPTeleporter_Client.asset.pbt new file mode 100644 index 0000000..3f36017 --- /dev/null +++ b/Data/Scripts/VIPTeleporter_Client.asset.pbt @@ -0,0 +1,17 @@ +Assets { + Id: 15946630700077324260 + Name: "VIPTeleporter_Client" + PlatformAssetType: 3 + TextAsset { + CustomParameters { + Overrides { + Name: "cs:API" + AssetReference { + Id: 8954907142092746216 + } + } + } + } + SerializationVersion: 119 + VirtualFolderPath: "VIP Teleporter" +} diff --git a/Data/Scripts/VIPTeleporter_Client.lua b/Data/Scripts/VIPTeleporter_Client.lua new file mode 100644 index 0000000..80b6fb2 --- /dev/null +++ b/Data/Scripts/VIPTeleporter_Client.lua @@ -0,0 +1,39 @@ +local API = require(script:GetCustomProperty("API")) + +---@type Folder +local TELEPORTER = script:GetCustomProperty("Teleporter"):WaitForObject() + +---@type UIContainer +local CONTAINER = script:GetCustomProperty("UIContainer"):WaitForObject() + +---@type UIText +local NAME = script:GetCustomProperty("Name"):WaitForObject() + +local SHOW_NAME = TELEPORTER:GetCustomProperty("ShowName") +local NAME_LABEL = TELEPORTER:GetCustomProperty("Name") + +local AVAILABLE_COLOR = TELEPORTER:GetCustomProperty("AvailableColor") +local RESTRICTED_COLOR = TELEPORTER:GetCustomProperty("RestrictedColor") + +local lastTeam = nil + +if(SHOW_NAME) then + CONTAINER.visibility = Visibility.FORCE_ON + NAME.text = NAME_LABEL + CONTAINER:LookAtContinuous(Game.GetLocalPlayer(), true) +end + +Events.Connect("Teleporter.SetLook" .. TELEPORTER.id, function(look) + Game.GetLocalPlayer():SetLookWorldRotation(look) +end) + +function Tick() + if Game.GetLocalPlayer().team ~= lastTeam then + lastTeam = Game.GetLocalPlayer().team + if API.GetConnectedTeleport(TELEPORTER, Game.GetLocalPlayer()) then + NAME:SetColor(AVAILABLE_COLOR) + else + NAME:SetColor(RESTRICTED_COLOR) + end + end +end diff --git a/Data/Scripts/VIPTeleporter_README.asset.pbt b/Data/Scripts/VIPTeleporter_README.asset.pbt new file mode 100644 index 0000000..97da59b --- /dev/null +++ b/Data/Scripts/VIPTeleporter_README.asset.pbt @@ -0,0 +1,11 @@ +Assets { + Id: 11316487365493547811 + Name: "VIPTeleporter_README" + PlatformAssetType: 3 + TextAsset { + CustomParameters { + } + } + SerializationVersion: 119 + VirtualFolderPath: "VIP Teleporter" +} diff --git a/Data/Scripts/VIPTeleporter_README.lua b/Data/Scripts/VIPTeleporter_README.lua new file mode 100644 index 0000000..68687e9 --- /dev/null +++ b/Data/Scripts/VIPTeleporter_README.lua @@ -0,0 +1,83 @@ +--[[ + + __ _______ _____ _______ _ _ + \ \ / /_ _| __ \ |__ __| | | | | + \ \ / / | | | |__) | | | ___| | ___ _ __ ___ _ __| |_ ___ _ __ + \ \/ / | | | ___/ | |/ _ \ |/ _ \ '_ \ / _ \| '__| __/ _ \ '__| + \ / _| |_| | | | __/ | __/ |_) | (_) | | | || __/ | + \/ |_____|_| |_|\___|_|\___| .__/ \___/|_| \__\___|_| + | | + |_| + +The VIP Teleporter component allows creators to set up teleporters that checks if a player is VIP. + +The component uses a data table to make connecting teleporters quick and simple. + +A player is considered VIP if they are on a specific team. + +==== +NOTE +==== + +If the Dependent folders are empty in Project Content under Imported Content for this component, save and reload the project to fix it. + +===== +Setup +===== + +To create your own teleporters, there is a VIP Teleporter template that can be used. + +To have a specific rotation for the player when they are teleported, you can rotate the root object. +If the rotation is 0, 0, 0, then it will maintain the player's rotation. + +The teleporters are connected using a data table. See below for more information on how to connect teleporters. + +========== +How to use +========== + +================= +Custom Properties +================= + +The template contains 4 custom properties on the root of the template. + +- ShowName + +If enabled, the name will appear above the teleporter for the player. + +- Name + +The name of the teleporter that will be transferred to. + +- Available Color + +The color of the text if the player is able to use the teleporter. + +- Restricted Color + +The color of the text if the player is not allowed to use the teleporter. + +====================== +Connecting Teleporters +====================== + +Connecting teleporters is very easy. + +In Project Content find the VIP Teleporters data table and open it. You will see 5 columns: From, To, TwoWay, VIP, and VIPTeams. + +- `From` is the object reference to the teleporter that will initiate the teleportation. + +- `To` is the object reference to the target location for the player. + +- `TwoWay` is a boolean indicating if the teleport connection works both ways. + +- `VIP` is a boolean indicating if it should teleport only VIPs or only non-VIPS. + +- `VIPTeams` is a comma-separated list of team numbers that will represent VIP teams. + +Teleporters can be chained easily. For example, from A to B, B to C, and so on. + +Teleporters can have multiple connections but only the first valid one will be selected. + +--]] diff --git a/Data/Scripts/VIPTeleporter_Server.asset.pbt b/Data/Scripts/VIPTeleporter_Server.asset.pbt new file mode 100644 index 0000000..9cd91ea --- /dev/null +++ b/Data/Scripts/VIPTeleporter_Server.asset.pbt @@ -0,0 +1,17 @@ +Assets { + Id: 8020863028806252508 + Name: "VIPTeleporter_Server" + PlatformAssetType: 3 + TextAsset { + CustomParameters { + Overrides { + Name: "cs:API" + AssetReference { + Id: 8954907142092746216 + } + } + } + } + SerializationVersion: 119 + VirtualFolderPath: "VIP Teleporter" +} diff --git a/Data/Scripts/VIPTeleporter_Server.lua b/Data/Scripts/VIPTeleporter_Server.lua new file mode 100644 index 0000000..c1c22b2 --- /dev/null +++ b/Data/Scripts/VIPTeleporter_Server.lua @@ -0,0 +1,31 @@ +local API = require(script:GetCustomProperty("API")) + +---@type Folder +local TELEPORTER = script:GetCustomProperty("Teleporter"):WaitForObject() + +---@type Trigger +local TRIGGER = script:GetCustomProperty("Trigger"):WaitForObject() + +local function on_player_enter(trigger, other) + if(other:IsA("Player") and not other.serverUserData.teleporting) then + local teleporter, row = API.GetConnectedTeleport(TELEPORTER, other) + + if(teleporter ~= nil) then + local pos_obj = teleporter:FindDescendantByName("Player Position") + + if(pos_obj ~= nil) then + other.serverUserData.teleporting = true + other:SetWorldPosition(pos_obj:GetWorldPosition()) + + if(teleporter:GetWorldRotation() ~= Rotation.ZERO) then + other:SetWorldRotation(teleporter:GetRotation()) + Events.BroadcastToPlayer(other, "Teleporter.SetLook" .. teleporter.id, teleporter:GetWorldRotation()) + end + + other.serverUserData.teleporting = false + end + end + end +end + +TRIGGER.beginOverlapEvent:Connect(on_player_enter) diff --git a/Data/Templates/VIP Teleporter.pbt b/Data/Templates/VIP Teleporter.pbt new file mode 100644 index 0000000..d5f4df4 --- /dev/null +++ b/Data/Templates/VIP Teleporter.pbt @@ -0,0 +1,800 @@ +Assets { + Id: 9073863231868576840 + Name: "VIP Teleporter" + PlatformAssetType: 5 + TemplateAsset { + ObjectBlock { + RootId: 3086651369025726795 + Objects { + Id: 3086651369025726795 + Name: "VIP Teleporter" + Transform { + Scale { + X: 1 + Y: 1 + Z: 1 + } + } + ParentId: 4781671109827199097 + ChildIds: 11546052872415464237 + ChildIds: 5690619420550485774 + ChildIds: 927876129300961052 + ChildIds: 17984654014492375491 + ChildIds: 1347366129751105289 + ChildIds: 16482312775326303284 + UnregisteredParameters { + Overrides { + Name: "cs:ShowName" + Bool: false + } + Overrides { + Name: "cs:Name" + String: "" + } + Overrides { + Name: "cs:AvailableColor" + Color { + G: 0.916666627 + B: 0.0667771846 + A: 1 + } + } + Overrides { + Name: "cs:RestrictedColor" + Color { + R: 0.690000057 + A: 1 + } + } + Overrides { + Name: "cs:ShowName:tooltip" + String: "If enabled, the name of the teleporter will show up above it for players." + } + Overrides { + Name: "cs:Name:tooltip" + String: "The name of the teleporter this is going to." + } + Overrides { + Name: "cs:AvailableColor:tooltip" + String: "The color of the text if the player is able to use the teleporter." + } + Overrides { + Name: "cs:RestrictedColor:tooltip" + String: "The color of the text if the player is not allowed to use the teleporter." + } + } + Collidable_v2 { + Value: "mc:ecollisionsetting:inheritfromparent" + } + Visible_v2 { + Value: "mc:evisibilitysetting:inheritfromparent" + } + CameraCollidable { + Value: "mc:ecollisionsetting:inheritfromparent" + } + EditorIndicatorVisibility { + Value: "mc:eindicatorvisibility:visiblewhenselected" + } + Folder { + IsGroup: true + } + NetworkRelevanceDistance { + Value: "mc:eproxyrelevance:critical" + } + IsReplicationEnabledByDefault: true + } + Objects { + Id: 11546052872415464237 + Name: "Geo" + Transform { + Location { + Z: 6.03687286 + } + Rotation { + Roll: -90 + } + Scale { + X: 2.69394755 + Y: 2.69394755 + Z: 2.69394755 + } + } + ParentId: 3086651369025726795 + UnregisteredParameters { + Overrides { + Name: "ma:Shared_Detail1:color" + Color { + R: 0.97 + G: 0.923809409 + A: 1 + } + } + Overrides { + Name: "ma:Shared_Trim:color" + Color { + R: 1 + G: 1 + B: 1 + A: 1 + } + } + Overrides { + Name: "ma:Shared_Trim2:color" + Color { + R: 1 + G: 1 + B: 1 + A: 1 + } + } + } + Collidable_v2 { + Value: "mc:ecollisionsetting:inheritfromparent" + } + Visible_v2 { + Value: "mc:evisibilitysetting:inheritfromparent" + } + CameraCollidable { + Value: "mc:ecollisionsetting:forceoff" + } + EditorIndicatorVisibility { + Value: "mc:eindicatorvisibility:visiblewhenselected" + } + CoreMesh { + MeshAsset { + Id: 12645141264855654239 + } + Teams { + IsTeamCollisionEnabled: true + IsEnemyCollisionEnabled: true + } + StaticMesh { + Physics { + Mass: 100 + LinearDamping: 0.01 + } + BoundsScale: 1 + } + } + Relevance { + Value: "mc:eproxyrelevance:critical" + } + NetworkRelevanceDistance { + Value: "mc:eproxyrelevance:critical" + } + IsReplicationEnabledByDefault: true + } + Objects { + Id: 5690619420550485774 + Name: "Client" + Transform { + Location { + } + Rotation { + } + Scale { + X: 1 + Y: 1 + Z: 1 + } + } + ParentId: 3086651369025726795 + ChildIds: 7017091249573544167 + ChildIds: 17550241941543939329 + ChildIds: 6288448598790141908 + ChildIds: 10749518062399643730 + Collidable_v2 { + Value: "mc:ecollisionsetting:forceoff" + } + Visible_v2 { + Value: "mc:evisibilitysetting:inheritfromparent" + } + CameraCollidable { + Value: "mc:ecollisionsetting:forceoff" + } + EditorIndicatorVisibility { + Value: "mc:eindicatorvisibility:visiblewhenselected" + } + NetworkContext { + MinDetailLevel { + Value: "mc:edetaillevel:low" + } + MaxDetailLevel { + Value: "mc:edetaillevel:ultra" + } + } + NetworkRelevanceDistance { + Value: "mc:eproxyrelevance:critical" + } + IsReplicationEnabledByDefault: true + } + Objects { + Id: 7017091249573544167 + Name: "Cylinder" + Transform { + Location { + Z: 148.336853 + } + Rotation { + } + Scale { + X: 1.59786272 + Y: 1.59786272 + Z: 2.88970518 + } + } + ParentId: 5690619420550485774 + UnregisteredParameters { + Overrides { + Name: "ma:Shared_BaseMaterial:id" + AssetReference { + Id: 2856230907151699230 + } + } + } + Collidable_v2 { + Value: "mc:ecollisionsetting:inheritfromparent" + } + Visible_v2 { + Value: "mc:evisibilitysetting:inheritfromparent" + } + CameraCollidable { + Value: "mc:ecollisionsetting:inheritfromparent" + } + EditorIndicatorVisibility { + Value: "mc:eindicatorvisibility:visiblewhenselected" + } + CoreMesh { + MeshAsset { + Id: 15891534465007960511 + } + Teams { + IsTeamCollisionEnabled: true + IsEnemyCollisionEnabled: true + } + StaticMesh { + Physics { + Mass: 100 + LinearDamping: 0.01 + } + BoundsScale: 1 + } + } + Relevance { + Value: "mc:eproxyrelevance:critical" + } + NetworkRelevanceDistance { + Value: "mc:eproxyrelevance:critical" + } + IsReplicationEnabledByDefault: true + } + Objects { + Id: 17550241941543939329 + Name: "Ember Volume VFX" + Transform { + Location { + Z: 112.291512 + } + Rotation { + } + Scale { + X: 1.28123045 + Y: 1.28123045 + Z: 2.95123553 + } + } + ParentId: 5690619420550485774 + UnregisteredParameters { + Overrides { + Name: "bp:Life" + Float: 3.59875584 + } + Overrides { + Name: "bp:Particle Scale Multiplier" + Float: 1.34382939 + } + Overrides { + Name: "bp:Density" + Float: 1.69169819 + } + Overrides { + Name: "bp:Gravity" + Float: 0.211491823 + } + Overrides { + Name: "bp:Wind Speed" + Vector { + X: 5 + } + } + Overrides { + Name: "bp:Volume Type" + Enum { + Value: "mc:evfxvolumetype:2" + } + } + Overrides { + Name: "bp:Curl Offset" + Vector { + X: 5 + } + } + Overrides { + Name: "bp:Initial Velocity" + Vector { + X: 5 + Y: 5 + Z: 10 + } + } + Overrides { + Name: "bp:Emissive Boost" + Float: 10.688695 + } + } + Collidable_v2 { + Value: "mc:ecollisionsetting:inheritfromparent" + } + Visible_v2 { + Value: "mc:evisibilitysetting:inheritfromparent" + } + CameraCollidable { + Value: "mc:ecollisionsetting:inheritfromparent" + } + EditorIndicatorVisibility { + Value: "mc:eindicatorvisibility:visiblewhenselected" + } + Blueprint { + BlueprintAsset { + Id: 15677013215648132030 + } + TeamSettings { + } + Vfx { + AutoPlay: true + } + } + Relevance { + Value: "mc:eproxyrelevance:critical" + } + NetworkRelevanceDistance { + Value: "mc:eproxyrelevance:critical" + } + IsReplicationEnabledByDefault: true + } + Objects { + Id: 6288448598790141908 + Name: "VIPTeleporter_Client" + Transform { + Location { + } + Rotation { + } + Scale { + X: 1 + Y: 1 + Z: 1 + } + } + ParentId: 5690619420550485774 + UnregisteredParameters { + Overrides { + Name: "cs:Teleporter" + ObjectReference { + SubObjectId: 3086651369025726795 + } + } + Overrides { + Name: "cs:UIContainer" + ObjectReference { + SubObjectId: 10749518062399643730 + } + } + Overrides { + Name: "cs:Name" + ObjectReference { + SubObjectId: 14352336208516670052 + } + } + } + Collidable_v2 { + Value: "mc:ecollisionsetting:inheritfromparent" + } + Visible_v2 { + Value: "mc:evisibilitysetting:inheritfromparent" + } + CameraCollidable { + Value: "mc:ecollisionsetting:inheritfromparent" + } + EditorIndicatorVisibility { + Value: "mc:eindicatorvisibility:visiblewhenselected" + } + Script { + ScriptAsset { + Id: 15946630700077324260 + } + } + NetworkRelevanceDistance { + Value: "mc:eproxyrelevance:critical" + } + IsReplicationEnabledByDefault: true + } + Objects { + Id: 10749518062399643730 + Name: "UI Container" + Transform { + Location { + Z: 308.88382 + } + Rotation { + } + Scale { + X: 1 + Y: 1 + Z: 1 + } + } + ParentId: 5690619420550485774 + ChildIds: 14352336208516670052 + UnregisteredParameters { + } + Collidable_v2 { + Value: "mc:ecollisionsetting:inheritfromparent" + } + Visible_v2 { + Value: "mc:evisibilitysetting:forceoff" + } + CameraCollidable { + Value: "mc:ecollisionsetting:inheritfromparent" + } + EditorIndicatorVisibility { + Value: "mc:eindicatorvisibility:visiblewhenselected" + } + Control { + RenderTransformPivot { + Anchor { + Value: "mc:euianchor:middlecenter" + } + } + Canvas { + ContentType { + Value: "mc:ecanvascontenttype:static" + } + Opacity: 1 + CanvasWorldSize { + X: 300 + Y: 68.1327133 + } + RedrawTime: 30 + } + AnchorLayout { + SelfAnchor { + Anchor { + Value: "mc:euianchor:topleft" + } + } + TargetAnchor { + Anchor { + Value: "mc:euianchor:topleft" + } + } + } + } + NetworkRelevanceDistance { + Value: "mc:eproxyrelevance:critical" + } + IsReplicationEnabledByDefault: true + } + Objects { + Id: 14352336208516670052 + Name: "Name" + Transform { + Location { + X: 285.723785 + Y: 3503.49097 + Z: 1334.40881 + } + Rotation { + Yaw: 134.591568 + } + Scale { + X: 3.70085955 + Y: 4.54381704 + Z: 4.85502338 + } + } + ParentId: 10749518062399643730 + Collidable_v2 { + Value: "mc:ecollisionsetting:inheritfromparent" + } + Visible_v2 { + Value: "mc:evisibilitysetting:inheritfromparent" + } + CameraCollidable { + Value: "mc:ecollisionsetting:inheritfromparent" + } + EditorIndicatorVisibility { + Value: "mc:eindicatorvisibility:visiblewhenselected" + } + Control { + Width: 200 + Height: 60 + RenderTransformPivot { + Anchor { + Value: "mc:euianchor:middlecenter" + } + } + UseParentWidth: true + UseParentHeight: true + Text { + Label: "Cafe" + Color { + R: 1 + G: 1 + B: 1 + A: 1 + } + Size: 18 + Justification { + Value: "mc:etextjustify:center" + } + Font { + Id: 16134101894301961105 + } + VerticalJustification { + Value: "mc:everticaljustification:center" + } + ShadowColor { + A: 1 + } + ShadowOffset { + } + OutlineColor { + A: 1 + } + OutlineSize: 4 + } + AnchorLayout { + SelfAnchor { + Anchor { + Value: "mc:euianchor:middlecenter" + } + } + TargetAnchor { + Anchor { + Value: "mc:euianchor:middlecenter" + } + } + } + } + NetworkRelevanceDistance { + Value: "mc:eproxyrelevance:critical" + } + IsReplicationEnabledByDefault: true + } + Objects { + Id: 927876129300961052 + Name: "Trigger" + Transform { + Location { + Z: 136.70813 + } + Rotation { + } + Scale { + X: 1.32094765 + Y: 1.32094765 + Z: 3.6105423 + } + } + ParentId: 3086651369025726795 + Collidable_v2 { + Value: "mc:ecollisionsetting:forceon" + } + Visible_v2 { + Value: "mc:evisibilitysetting:inheritfromparent" + } + CameraCollidable { + Value: "mc:ecollisionsetting:inheritfromparent" + } + EditorIndicatorVisibility { + Value: "mc:eindicatorvisibility:visiblewhenselected" + } + Trigger { + TeamSettings { + IsTeamCollisionEnabled: true + IsEnemyCollisionEnabled: true + } + TriggerShape_v2 { + Value: "mc:etriggershape:capsule" + } + InteractionTemplate { + } + BreadcrumbTemplate { + } + } + NetworkRelevanceDistance { + Value: "mc:eproxyrelevance:critical" + } + IsReplicationEnabledByDefault: true + } + Objects { + Id: 17984654014492375491 + Name: "VIPTeleporter_Server" + Transform { + Location { + } + Rotation { + } + Scale { + X: 1 + Y: 1 + Z: 1 + } + } + ParentId: 3086651369025726795 + UnregisteredParameters { + Overrides { + Name: "cs:Trigger" + ObjectReference { + SubObjectId: 927876129300961052 + } + } + Overrides { + Name: "cs:Teleporter" + ObjectReference { + SubObjectId: 3086651369025726795 + } + } + } + Collidable_v2 { + Value: "mc:ecollisionsetting:inheritfromparent" + } + Visible_v2 { + Value: "mc:evisibilitysetting:inheritfromparent" + } + CameraCollidable { + Value: "mc:ecollisionsetting:inheritfromparent" + } + EditorIndicatorVisibility { + Value: "mc:eindicatorvisibility:visiblewhenselected" + } + Script { + ScriptAsset { + Id: 8020863028806252508 + } + } + NetworkRelevanceDistance { + Value: "mc:eproxyrelevance:critical" + } + IsReplicationEnabledByDefault: true + } + Objects { + Id: 1347366129751105289 + Name: "Player Position" + Transform { + Location { + Z: 150 + } + Rotation { + } + Scale { + X: 1 + Y: 1 + Z: 1 + } + } + ParentId: 3086651369025726795 + Collidable_v2 { + Value: "mc:ecollisionsetting:inheritfromparent" + } + Visible_v2 { + Value: "mc:evisibilitysetting:inheritfromparent" + } + CameraCollidable { + Value: "mc:ecollisionsetting:inheritfromparent" + } + EditorIndicatorVisibility { + Value: "mc:eindicatorvisibility:visiblewhenselected" + } + Blueprint { + BlueprintAsset { + Id: 16059926219691492210 + } + TeamSettings { + } + } + IsReplicationEnabledByDefault: true + } + Objects { + Id: 16482312775326303284 + Name: "README" + Transform { + Location { + X: -1053.39636 + } + Rotation { + } + Scale { + X: 1 + Y: 1 + Z: 1 + } + } + ParentId: 3086651369025726795 + Collidable_v2 { + Value: "mc:ecollisionsetting:inheritfromparent" + } + Visible_v2 { + Value: "mc:evisibilitysetting:inheritfromparent" + } + CameraCollidable { + Value: "mc:ecollisionsetting:inheritfromparent" + } + EditorIndicatorVisibility { + Value: "mc:eindicatorvisibility:visiblewhenselected" + } + Script { + ScriptAsset { + Id: 11316487365493547811 + } + } + NetworkRelevanceDistance { + Value: "mc:eproxyrelevance:critical" + } + IsReplicationEnabledByDefault: true + } + } + Assets { + Id: 12645141264855654239 + Name: "Fantasy Shield 01" + PlatformAssetType: 1 + PrimaryAsset { + AssetType: "StaticMeshAssetRef" + AssetId: "sm_weap_fan_shield_001" + } + } + Assets { + Id: 15891534465007960511 + Name: "Cylinder" + PlatformAssetType: 1 + PrimaryAsset { + AssetType: "StaticMeshAssetRef" + AssetId: "sm_cylinder_002" + } + } + Assets { + Id: 15677013215648132030 + Name: "Ember Volume VFX" + PlatformAssetType: 8 + PrimaryAsset { + AssetType: "VfxBlueprintAssetRef" + AssetId: "fxbp_ember_volume_vfx" + } + } + Assets { + Id: 16134101894301961105 + Name: "Roboto Slab Black" + PlatformAssetType: 28 + PrimaryAsset { + AssetType: "FontAssetRef" + AssetId: "RobotoSlabBlack_ref" + } + } + Assets { + Id: 16059926219691492210 + Name: "Dummy Object" + PlatformAssetType: 6 + PrimaryAsset { + AssetType: "BlueprintAssetRef" + AssetId: "fxbp_dummy_pivot" + } + } + PrimaryAssetId { + AssetType: "None" + AssetId: "None" + } + } + SerializationVersion: 119 + VirtualFolderPath: "VIP Teleporter" +} diff --git a/Data/VirtualFolderSets/Virtual Folders.pbt b/Data/VirtualFolderSets/Virtual Folders.pbt new file mode 100644 index 0000000..bbf81da --- /dev/null +++ b/Data/VirtualFolderSets/Virtual Folders.pbt @@ -0,0 +1,24 @@ +Assets { + Id: 11237267171393895703 + Name: "Virtual Folders" + PlatformAssetType: 30 + SerializationVersion: 119 + VirtualFolderSetAsset { + Folders { + VirtualFolderPath: "VIP Teleporter" + PlatformAssetType: 13 + } + Folders { + VirtualFolderPath: "VIP Teleporter" + PlatformAssetType: 3 + } + Folders { + VirtualFolderPath: "VIP Teleporter" + PlatformAssetType: 5 + } + Folders { + VirtualFolderPath: "VIP Teleporter" + PlatformAssetType: 31 + } + } +} diff --git a/Meta.pbt b/Meta.pbt new file mode 100644 index 0000000..7752352 --- /dev/null +++ b/Meta.pbt @@ -0,0 +1,5 @@ +GameId: "0B53E5694143D5A930D81CAC69579072" +DisplayName: "VIP Teleporter" +GameSerializationVersion: 119 +Framework: "EmptyProject" +StorageVersion: 2 diff --git a/README.md b/README.md index b9c9cfc..91553d8 100644 --- a/README.md +++ b/README.md @@ -1,31 +1,73 @@
-# CC-Template-Repository +# VIP Teleporter -A ... component that does x. +[![Build Status](https://github.com/ManticoreGamesInc/CC-NFT-Searcher/workflows/CI/badge.svg)](https://github.com/ManticoreGamesInc/CC-VIP-Teleporter/actions/workflows/ci.yml?query=workflow%3ACI%29) +![GitHub release (latest by date)](https://img.shields.io/github/v/release/ManticoreGamesInc/CC-VIP-Teleporter?style=plastic) -[![Build Status](https://github.com/Core-Team-META/CC-Template-Repository/workflows/CI/badge.svg)](https://github.com/Core-Team-META/CC-Template-Repository/actions/workflows/ci.yml?query=workflow%3ACI%29) -![GitHub release (latest by date)](https://img.shields.io/github/v/release/Core-Team-META/CC-Template-Repository?style=plastic) - -![TitleCard](/Screenshots/REPLACE_ME.png) +![Preview](/Screenshots/vipteleporter.png)
+## Finding the Component + +This component can be found under the **CoreAcademy** account on Community Content. + ## Overview -Description +The VIP Teleporter component allows creators to set up teleporters that checks if a player is VIP. + +The component uses a data table to make connecting teleporters quick and simple. + +A player is considered VIP if they are on a specific team. ## Setup -Setup +To create your own teleporters, there is a VIP Teleporter template that can be used. + +To have a specific rotation for the player when they are teleported, you can rotate the root object. +If the rotation is 0, 0, 0, then it will maintain the player's rotation. + +The teleporters are connected using a data table. See below for more information on how to connect teleporters. + +## How to use + +### Custom Properties + +The template contains 4 custom properties on the root of the template. + +- ShowName + +If enabled, the name will appear above the teleporter for the player. + +- Name + +The name of the teleporter that will be transferred to. + +- Available Color + +The color of the text if the player is able to use the teleporter. + +- Restricted Color + +The color of the text if the player is not allowed to use the teleporter. + +### Connecting Teleporters + +Connecting teleporters is very easy. + +In Project Content find the VIP Teleporters data table and open it. You will see 5 columns: From, To, TwoWay, VIP, and VIPTeams. + +- `From` is the object reference to the teleporter that will initiate the teleportation. + +- `To` is the object reference to the target location for the player. + +- `TwoWay` is a boolean indicating if the teleport connection works both ways. -## Credits +- `VIP` is a boolean indicating if it should teleport only VIPs or only non-VIPS. -- List -- of -- people +- `VIPTeams` is a comma-separated list of team numbers that will represent VIP teams. -## How to use this Template +Teleporters can be chained easily. For example, from A to B, B to C, and so on. -- Replace every mention of `CC-Template-Repository` with your new repository name. -- Replace every mention of `REPLACE_ME` with the correct values. +Teleporters can have multiple connections but only the first valid one will be selected. diff --git a/Screenshots/REPLACE_ME.png b/Screenshots/REPLACE_ME.png deleted file mode 100644 index 18b7f41..0000000 Binary files a/Screenshots/REPLACE_ME.png and /dev/null differ diff --git a/Screenshots/vipteleporter.png b/Screenshots/vipteleporter.png new file mode 100644 index 0000000..8c0f823 Binary files /dev/null and b/Screenshots/vipteleporter.png differ