🛠️Config

TZMCCityGuideConfig = {}

--[[

    Cinematic City Tour Guide

    This configuration allows you to define new tabs, blocks, and camera scenes for each section of the in-game tour. 

    Structure Overview:
    -------------------
    - **header**: The general header for the interface.

    - **tabs**: Each entry in the `tabs` table represents a new tab or page in the interface.
      - `header`: The title of the tab.
      - `blocks`: Contains sections of content related to the tab, each with its own header, description, and optional parameters.
      
    - **blocks**: Each tab can contain multiple blocks, which define content sections.
      - `header`: The title for this content section.
      - `description`: A detailed explanation or description shown in this block.
      - `image` (optional): A URL to an image displayed in the block. If `false` or omitted, no image is shown.
      - `waypoint` (optional): If set to a `vector3` coordinate, a button will be shown to allow setting a waypoint. If set to `false` or omitted, no waypoint button is displayed.
      - `camera` (optional): Defines one or more cameras to highlight areas of interest in the 3D tour. If not present, no camera is used for the block.
      
    - **camera**: Each block can have multiple camera entries to create a dynamic 3D tour.
      - `startCoord`: The starting position of the camera (x, y, z).
      - `endCoord`: The ending position of the camera (x, y, z).
      - `facing`: The point the camera will face during the movement.
      - `duration`: The length of time (in seconds) for which the camera will play.
      - `description`: A description of what the camera is showing.

    Adding a New Tab:
    ----------------
    To add a new tab, follow these steps:
    1. Add a new entry under `tabs` with a unique index.
    2. Define the `header` for the new tab.
    3. Add one or more `blocks` with their own `header`, `description`, and optional `image`, `waypoint`, and `camera` configurations.
    
    Example:
    --------

    tabs = {
        [2] = {  -- This is the new tab being added.
            header = "Jobs",  -- Title of the tab.
            blocks = {
                [1] = {  -- Block 1 inside the new tab.
                    header = "Police Department",
                    description = "This is a description of the PD block, highlighting its role and services in the city.",
                    image = "https://example.com/pd_image.jpg",  -- Optional image URL.
                    waypoint = vector3(428.17, -939.52, 38.35),  -- Optional waypoint.
                    camera = {  -- Optional camera settings for the 3D tour.
                        [1] = {
                            startCoord = vector3(428.17, -939.52, 38.35),
                            endCoord = vector3(395.68, -1034.07, 46.56),
                            facing = vector3(445.67, -990.86, 35.33),
                            duration = 10,
                            description = "A camera view of the Mission Row Police Department."
                        }
                    }
                }
            }
        }
    }

    Notes:
    - `image`, `waypoint`, and `camera` are all optional parameters in the `blocks`. If not specified, the block will still display with just a header and description.
    - If `camera` is omitted, no 3D tour for that block will be displayed.
    - If `waypoint` is set to `false` or omitted, the waypoint button will not appear.

    Exports

    The following export allows you to open the Tour Page from the 'tzmc-cityGuide' resource. 
    You can integrate this export into your own script to call the OpenTourPage() function as needed.
    Additionally, if you need to understand how this export works in practice, the 'npc.lua' file 
    has been unlocked for viewing. It provides a useful example of how the integration is done.

    exports['tzmc-cityGuide']:OpenTourPage()

]]--


TZMCCityGuideConfig.NUI = {
    header = {
        text = "City Guide",
        tabsColor = 'blue'
    },
    waypoint = {
        text = "Set Waypoint",
        color = 'blue'
    },
    startTour = {
        text = "Start Tour",
        color = 'blue'
    },
    tabs = {
        [1] = {
            header = "Welcome",
            blocks = {
                [1] = {
                    header = "TZMC Server",
                    description = 
                        "Welcome to TZMC, a city where your story begins! Whether you're here to enforce the law, dive into " ..
                        "the world of crime, or simply explore the many opportunities that await, TZMC offers a vibrant and " ..
                        "immersive experience unlike any other. From the bustling downtown to the quiet suburbs, every " ..
                        "corner of the city holds new adventures and possibilities. As you arrive, take some time to " ..
                        "familiarize yourself with the local landmarks. The Police Department stands ready to serve and " ..
                        "protect, while the Medical Center ensures the safety and well-being of all citizens. And when "  ..
                        "you're hungry after a long day, don't forget to swing by Burgershot for a quick bite! Life in " ..
                        "TZMC is fast-paced, but the community here is always welcoming and ready to help newcomers settle " ..
                        "in. Whether you're looking to make friends, build alliances, or carve out a reputation, the " ..
                        "choices are yours. Remember, every decision you make shapes not only your story but the world " ..
                        "around you. Will you rise to power, enforce justice, or blend into the crowd? Be sure to take " ..
                        "advantage of our 3D tour to get a lay of the land and explore key locations before diving into the " ..
                        "action. This city is yours to conquer, and the journey is just beginning. Welcome to TZMC—your new " ..
                        "home, where the possibilities are endless.",
                    image = "https://kappa.lol/te_XZ.jpg",
                    waypoint = false,
                    camera = {
                        -- PDM --
                        [1] = {
                            startCoord = vector3(-101.25, -1076.57, 40.92),
                            endCoord = vector3(-55.6, -1157.75, 39.19),
                            facing = vector3(-43.09, -1097.11, 26.42),
                            duration = 10,
                            description =
                                "Premium Deluxe Motorsport (PDM) ~BLIP_832~ is the top car dealership, offering a wide " ..
                                "range of vehicles from luxury sports cars to affordable sedans. Known for its sleek " ..
                                "showroom and exceptional customer service, PDM provides an immersive buying experience " ..
                                "with test drives and customization options."
                        },
                        [2] = {
                            startCoord = vector3(-49.4, -1093.69, 27.09),
                            endCoord = vector3(-38.68, -1098.54, 27.0),
                            facing = vector3(-42.23, -1091.99, 26.42),
                            duration = 10,
                            description =
                                "To purchase a new or used vehicle, head inside PDM and speak with a representative. " ..
                                "Whether you're looking to buy or test drive one of the showroom vehicles, PDM offers a " ..
                                "seamless experience with a wide selection of cars to choose from."
                        },
                        -- LEGION SQUARE --
                        [3] = {
                            startCoord = vector3(288.2, -874.58, 62.93),
                            endCoord = vector3(228.99, -1040.77, 62.79),
                            facing = vector3(197.49, -932.66, 30.69),
                            duration = 10,
                            description =
                                "Legion Square is a bustling hub in the heart of the city, often serving as a popular " ..
                                "meeting point for locals and visitors alike. Located near Pillbox Hospital, it's a " ..
                                "frequent spot for gatherings and events, with its open plaza and iconic landmarks making " ..
                                "it a central location for city life."
                        },
                        -- CASINO --
                        [4] = {
                            startCoord = vector3(824.93, 105.09, 129.91),
                            endCoord = vector3(817.23, -5.28, 121.17),
                            facing = vector3(955.26, 39.58, 101.51),
                            duration = 10,
                            description = 
                                "The Diamond Casino ~BLIP_679~ is the city's premier destination for luxury and " ..
                                "entertainment, offering high-stakes games, exclusive events, and a lavish experience for " ..
                                "every visitor. With its sleek architecture and vibrant atmosphere, it's a hotspot for "  ..
                                "those looking to enjoy the finer things in life."
                        },
                        [5] = {
                            startCoord = vector3(1103.46, 204.58, -48.28),
                            endCoord = vector3(1112.66, 228.16, -48.22),
                            facing = vector3(1099.68, 219.79, -48.75),
                            duration = 10,
                            description = 
                                "Take a look at the Diamond Casino's podium vehicle, where lucky players can win instant " ..
                                "prizes, including this featured car. Spin the wheel for a chance to drive away in style, " ..
                                "just one of the many exciting rewards offered at the casino."
                        },
                        -- MRPD --
                        [6] = {
                            startCoord = vector3(428.17, -939.52, 38.35),
                            endCoord = vector3(395.68, -1034.07, 46.56),
                            facing = vector3(445.67, -990.86, 35.33),
                            duration = 10,
                            description =
                                "The Mission Row Police Department (MRPD) ~BLIP_60~ serves as the central hub of law " ..
                                "enforcement in the city. This iconic station is known for its strategic location and " ..
                                "bustling activity, housing officers, detectives, and state-of-the-art facilities to ensure " ..
                                "the safety of the city."
                        },
                    }
                }
            }
        },
        [2] = {
            header = "Jobs",
            blocks = {
                [1] = {
                    header = "PD",
                    description = 
                        "The Police Department is the heart of law enforcement in the city. Whether you're reporting a " ..
                        "crime, looking to join the force, or just passing by, this is the hub for keeping the streets " ..
                        "safe. Officers are always on duty, ensuring order and justice.",
                    image = "https://kappa.lol/NbetY.jpg",
                    waypoint = vector3(437.69, -983.85, 30.62),
                    camera = {
                        [1] = {
                            startCoord = vector3(428.17, -939.52, 38.35),
                            endCoord = vector3(395.68, -1034.07, 46.56),
                            facing = vector3(445.67, -990.86, 35.33),
                            duration = 10,
                            description =
                                "The Mission Row Police Department (MRPD) ~BLIP_60~ serves as the central hub of law " ..
                                "enforcement in the city. This iconic station is known for its strategic location and " ..
                                "bustling activity, housing officers, detectives, and state-of-the-art facilities to ensure " ..
                                "the safety of the city."
                        }
                    }
                },
                [2] = {
                    header = "Medical",
                    description = 
                        "Life in the city can be tough, but the Medical Center is here to help. Whether you've been in an " ..
                        "accident or just need a routine check-up, our highly trained doctors and nurses are ready to get " ..
                        "you back on your feet. Your health is our priority.",
                    image = "https://kappa.lol/1s02y.jpg",
                    waypoint = vector3(305.0, -589.05, 43.29),
                    camera = {
                        [1] = {
                            startCoord = vector3(373.68, -670.14, 43.18),
                            endCoord = vector3(405.02, -512.16, 72.75),
                            facing = vector3(335.46, -586.75, 51.48),
                            duration = 10,
                            description =
                                "The Pillbox Medical Center provides vital aid for citizens within the city. As you " ..
                                "approach the building, you'll notice the sleek design and clear signage guiding those in " ..
                                "need to the city's best medical professionals."
                        },
                        [2] = {
                            startCoord = vector3(296.95, -598.9, 44.24),
                            endCoord = vector3(326.29, -588.91, 44.24),
                            facing = vector3(327.74, -588.52, 44.24),
                            duration = 10,
                            description = 
                                "Citizens inside Pillbox Medical Center will be treated for any injuries they may have, " ..
                                "with top-tier medical equipment and skilled staff ready to ensure a speedy recovery."
                        }
                    }
                },
                [3] = {
                    header = "Burgershot",
                    description = 
                        "Burgershot is the city's favorite fast-food joint, serving up delicious burgers, fries, and " ..
                        "shakes. Whether you're grabbing a quick bite or hanging out with friends, this is the perfect spot " ..
                        "to satisfy your cravings. The taste you love, fast!",
                    image = "https://kappa.lol/Ff7GT.jpg",
                    waypoint = vector3(-1189.81, -888.48, 13.92),
                    camera = {
                        [1] = {
                            startCoord = vector3(-1122.41, -887.13, 31.82),
                            endCoord = vector3(-1189.98, -827.66, 31.82),
                            facing = vector3(-1189.28, -889.91, 16.24),
                            duration = 10,
                            description = 
                                "If you're feeling hungry, you can visit one of many fast food options around the city. " ..
                                "Burgershot stands out with its iconic red and yellow design, a sure sign that a tasty meal " ..
                                "is just minutes away."
                        },
                    }
                }
            }
        },
        [3] = {
            header = "Rules",
            blocks = {
                [1] = {
                    header = "1: Respect All Players and Staff",
                    description = 
                        "Treat everyone with respect, regardless of their role or status. Discrimination, harassment, or " ..
                        "abusive language will not be tolerated.",
                    image = false,
                    waypoint = false,
                    camera = false
                },
                [2] = {
                    header = "2: No Random Deathmatch (RDM)",
                    description = 
                        "Attacking or killing players without valid in-game roleplay reasons is prohibited. All " ..
                        "interactions must follow a roleplay scenario.",
                    image = false,
                    waypoint = false,
                    camera = false
                },
                [3] = {
                    header = "3: No Vehicle Deathmatch (VDM)",
                    description = 
                        "Do not use vehicles to run over or kill players without a valid roleplay reason. Deliberately " ..
                        "using vehicles to cause destruction or chaos is not allowed.",
                    image = false,
                    waypoint = false,
                    camera = false
                },
                [4] = {
                    header = "4: Roleplay at All Times (Stay in Character)",
                    description = 
                        "Remain in character at all times during interactions. If you need to discuss out-of-character " ..
                        "matters, use the designated channels (e.g., /ooc).",
                    image = false,
                    waypoint = false,
                    camera = false
                },
                [5] = {
                    header = "5: No Metagaming",
                    description = 
                        "Using information gained out-of-character (such as through streams, Discord, or external sources) " ..
                        "to influence in-game decisions is prohibited.",
                    image = false,
                    waypoint = false,
                    camera = false
                },
                [6] = {
                    header = "6: No Powergaming",
                    description = 
                        "Do not force actions on other players or create unrealistic scenarios that break immersion or give " ..
                        "unfair advantages. All actions must have a fair and realistic approach.",
                    image = false,
                    waypoint = false,
                    camera = false
                },
                [7] = {
                    header = "7: Follow the Fear RP Rules",
                    description = 
                        "Act realistically in dangerous situations. For example, if you’re held at gunpoint, act as if your " ..
                        "life is truly at risk. Ignoring life-threatening situations will lead to punishment.",
                    image = false,
                    waypoint = false,
                    camera = false
                },
                [8] = {
                    header = "8: No Exploiting or Hacking",
                    description = 
                        "Using glitches, exploits, or third-party programs to gain unfair advantages is strictly forbidden. " ..
                        "If you discover a bug or exploit, report it to the staff immediately.",
                    image = false,
                    waypoint = false,
                    camera = false
                },
                [9] = {
                    header = "9: Safe Zones",
                    description =
                        "Respect designated safe zones (such as hospitals, police stations, etc.), where violence or crime " ..
                        "is not allowed. Any roleplay-related crime inside these areas will result in penalties.",
                    image = false,
                    waypoint = false,
                    camera = false
                },
                [10] = {
                    header = "10: Obey Staff Decisions",
                    description = 
                        "The decisions made by staff members are final. If you have any disputes or complaints, use the " ..
                        "appropriate methods to appeal, but never argue with staff in-game.",
                    image = false,
                    waypoint = false,
                    camera = false
                }
            }
        },
        [4] = {
            header = "Staff",
            blocks = {
                [1] = {
                    header = "Owner - John Doe",
                    description = 
                        "John Doe is the server owner and oversees all operations to ensure a smooth and enjoyable " ..
                        "experience for everyone.",
                    image = "https://kappa.lol/fIdVt.jpg",
                    waypoint = false,
                    camera = false
                },
                [2] = {
                    header = "Moderator - John Doe",
                    description = 
                        "John Doe helps moderate chat, enforce the rules, and handle minor disputes between players.",
                    image = "https://kappa.lol/IcPTW.jpg",
                    waypoint = false,
                    camera = false
                },
                [3] = {
                    header = "Developer - John Doe",
                    description = 
                        "John Doe handles all technical aspects of the server, including scripting, bug fixes, and updates " ..
                        "to enhance player experience.",
                    image = "https://kappa.lol/KzpB2.jpg",
                    waypoint = false,
                    camera = false
                },
                [4] = {
                    header = "Support - John Doe",
                    description = 
                        "John Doe is here to assist with player inquiries, troubleshoot issues, and help new players get " ..
                        "familiar with the server.",
                    image = "https://kappa.lol/YRY5A.jpg",
                    waypoint = false,
                    camera = false
                }
            }
        }
        
    }
}

Last updated