Hey everyone,
#ROBLOX#RobloxDev#RobloxDevs
Discord Port Server - https://t.co/JjVwxJkW0T
For today's update I was working on an LB board which took a bit of time debugging and trying to figure out surface GUI's a bit more, but I believe I got the general idea with adding frames and being able to have mock frames in replicated storage. Also using ordered datastores to only get a page of 50. Also something I added was actually having to refresh player data again so the leaderboard is accurate since data was only saved on player leaves or bind to close. Overall it was a great lesson, I was working on something more intense, but that will get its own post on its own.
Hey everyone,
#ROBLOX#RobloxDev#RobloxDevs
Discord Port Server - https://t.co/JjVwxJkobl
TLDR; Player Attributes, DataStores, TextChatService/RichText & Path Finding Service
For today's update I have a lot to share - I was working on a proximity prompt on a part basically whenever you trigger, it will give you the VIP attribute as true and this value is accounted for in a datastore on leaves/joins/bindtoclose and player joins to ensure the player has the same attribute boolean value when they rejoin, etc.
Then I used this value for text chat service basically checking if the user has VIP from that player attribute if they had it I would use [VIP] playername.. else playername.. which is useful for any games that have titles that they constantly swap between.
And finally for Path finding service was a bit tricky to learn, but similar to tween service you need to define some properties to pass in the create path for path finding service - with this params you can compute the path from the starting point of the humanoid rig to the goal part position. We can add a trail for visual rep which is what I did and we can also account if our humanoid needs to join with the jump action set to true and continue to the next waypoint.
Hey everyone,
#ROBLOX#RobloxDev#RobloxDevs
Discord Port Server - https://t.co/JjVwxJkW0T
TLDR; Instance Streaming & DataStores
For today's update I was learning more on instance streaming something I have noticed in game, but never really knew what it was being able to add a certain radius for parts to load out of the workspace to save memory and only load them in within your radius and having two one for max radius that starts the initial call and min being important because if it reaches min before fully loading your game will pause causing bad user experience. This was also very helpful because possibly not loading buildings is fine, but we would not want to get rid of the map. So having the ability to have your parts on persistent being able to be streamed whenever is very useful.
Now onto datastores, this was a concept I had trouble with the first time I learned it, but now it has been good to say I have a good understanding of how to set one up for a game, being the foundation to being able to have your data saved after playing. Being able to further go from leaderstats, there was an interesting section I learned and debugged where sometimes stopping the game (killing the server) or leaving too quick, wouldnt save the data so its good to have a while loop somewhere saving data as well. And also having a game bind to close to basically prevent this from happening. I was able to have a smooth game from running with saving my data, if anyone has any tips I would be happy to hear them. Otherwise moving on..
Hey everyone,
#ROBLOX#RobloxDev#RobloxDevs
Discord Port Server - https://t.co/JjVwxJkobl
For today's update I was working on the Collection Service, I had some experience in the past. Basically seeing this as a tracker for all parts that are kept track of regardless of their location, which makes loop over these objects in random locations easier. There is also functionality to trigger depending the object you are working on and also the ability to add or remove instances if new parts are added with those tags, such as a touched event on a part that was just added. I also cleaned up a bit of my code using local functions instead of async functions which get created after each loop which eat up memory. So I am also improving a little bit on system design to where I can understand how to make scripts/games that are not constantly eating up memory and able to function properly. One more thing was for my looking tween part, it breaks when I die so I added functionality to check when the player is back to reattached the variable with the head value to basically prevent the tracking to stop. Overall a great lesson and many use cases.
Hey everyone,
#ROBLOX#RobloxDev#RobloxDevs
Discord Port Server - https://t.co/JjVwxJkobl
For today's update I have been working with ContextActionService similar to user input service, but with more features, such has having the option to make it compatible with all devices, mobile, pc, console. This on top of the easy setup helps in setting up easy actions for users once they press a certain key, etc. It was an interesting takeaway, I could not think of anything that is still beginner friendly with this service, but ill probably run into it in the future. Something I forgot to say in the last post, but I used tween service to change the time of day in game, but for this mini project I used a teleport back feature sort of like a dodge and also a teleport button.
Hey everyone,
#ROBLOX#RobloxDev#RobloxDevs
Discord Port Server - https://t.co/JjVwxJkobl
TLDR; Had a lot of fun testing TweenService.
For todays activity I testing a couple of things such as opening doors using tweens, this was very useful as it taught me a couple of hacks instead of having to guess how many studs to move to the left, etc. You can move it to whatever x axis you want by the size of the part. And also getting the children / waiting on tweens to be completed to avoid errors/complications in my code. And for the last little fun script I made was a local looking part that follows your movement and updates its rotation live creating new tweens and updating the Cframes.
Hey everyone,
#ROBLOX#RobloxDev#RobloxDevs
Discord Port Server - https://t.co/JjVwxJkobl
This is the second post.
For the other learning section I was working on, I finished adding the animation and published it Roblox where I got the asset ID and also saved the animation into my game. Where I was able to move this under my tool to trigger on the player that picks it up and attempts to activate it to eat it, gaining hp points and an eating animation. There is was some useful takes from this activity such as animation priority on others such as being idle, etc. Being able to get all the children from a parent folder, etc. And ensuring I am only working on parts since there was an error trying to access part property's on a script. Looking into tween service next.
Hey everyone,
#ROBLOX#RobloxDev#RobloxDevs
Discord Port Server - https://t.co/JjVwxJkobl
There will be two post today, separated.
For today's first update I was working on a tool functionality for a player having both extra speed and jump height when equipping the tool and back to default when unequipping. It was a bit tricky since originally I had the server script try to catch the event on the tool, but it looks like that is not the appropriate way to to trigger to the server side, so I stored the server script in server script service and was able to get the script working without any issues. I am getting more comfortable with players, characters, humanoids and properties on them. There was also a useful lesson that I learned with :: basically type annotation sometimes roblox will not know what object you are working with - so you can let the script know and its easier to access its methods, etc. Overall this was a fun feature that I added for the game. Looking forward to more additions.
Hey everyone,
#ROBLOX#RobloxDev#RobloxDevs
Discord Port Server - https://t.co/JjVwxJkobl
Just a small update, but I helped out a friend with their new game that they released and added in a small feature of UI changing for on/off and triggering the mute of music if the player wishes too, focusing right now on animations so will update you all on that lesson once I test it out.
Game link if you were curious - https://t.co/iMsfITIo9w
Hey everyone,
#ROBLOX#RobloxDev#RobloxDevs
Discord Port Server - https://t.co/JjVwxJkobl
TLDR; events, remote functions (client --> server --> client), tools
After catching up with the basics I am back to remote functions, did an exercise where there was a tool that I picked up which had a local script attached to where once it was activated it would trigger an invoke server where the server script that uses the automatically passed player object and grabbed the humanoid and health property off it. So the donut was basically a food item that healed you, which is where I added a part that on touched will take away five hp. This was moreso a nice refresher, so going to move on with this course and update you all soon
Hey everyone,
TLDR; Metatables, Proximity Prompt event triggers, CFrames, Constructors/Methods, etc.
Instead of a day post, going to be posting what I am up to / learning for scripting.
I was on a bit of a hiatus since I had some IRL things come up, but I should be having more time to focus on learning and practicing.
Some takeaways from what I picked up was re mastering the basics, some examples of this was Metatables, Module Scripts, Metatable constructors and methods, coroutines and Proximity Prompts. I took some time to properly make some small scripts and practices some examples of this was understanding the proper way of how MetaTables are considered OOP in Lua by having tables as objects and having .new() as a constructor basically an __init__ in other languages. This was very useful for me because I can see in the future how this can make scripting easier by having this classes with methods for certain behaviors between 2 objects/tables. With CFrames I took more time to understand thats the purpose on what they do which is position and rotation/look at values which are used for many things including part CFrames essentially being able to manipulate them to looking at other parts. Also being able to dabble more into events and triggers such as Proximity Prompt events that are triggered off a certain button press that you can change and have different features if intended.
Overall, this was a great refresher and I am definitely more confident with using the actual roblox documentation and being able to script with it.
Hey everyone,
Day 24/100 - Scripting on Roblox
#ROBLOX#RobloxDev#RobloxDevsDiscord
Port Server - https://t.co/JjVwxJkobl
For today's update I had the chance to learn about gamepasses. I seen it being similar to animations where it needs to be added to your game, in this case through roblox create and have it listed for sale. I also seen that market place service is the updated/more common method for gamepasses then the decommissioned game pass service. It was important to see the triggers + events you can set when a player purchases a gamepass, currently watching the rest of this video to see how we can track player history, so excited to update you all tomorrow on that.
Hey everyone,
Day 23/100 - Scripting on Roblox
#ROBLOX#RobloxDev#RobloxDevs
Discord Port Server - https://t.co/JjVwxJkobl
For today's update, I had the chance to learn about Animations, specifically rigs, editor and tracks. This was an important lesson since I learned the difference for R6 and R15 rigs and how they work. Now with access to these rigs, I was able to look/create mini animations in the editor. Which has some use cases overall viewing the animation, then publishing it to roblox to use for your game with an animation ID. Events can be added like "markers" to have another event trigger once the marker time happens in the timeline. You can also set speeds to animations, but an important lesson is this needs to be done after the animation is played, if it is done before it will not work. This was a great lesson and I can't wait to test my skills in the future.
Hey everyone,
Day 22/100 - Scripting on Roblox
#ROBLOX#RobloxDev#RobloxDevsDiscord
Port Server - https://t.co/JjVwxJkobl
For todayβs update I had the chance to learn about BadgeService, as the usual services we require the game to be published and create badges outside of studio. And we can use these badges to trigger off events such as joining for the first time or completing a story/obby. Also important to use player.Userid because you can also get lost data/badges if you use their name. There was also an interesting part where you should/can use pcalls on these calls to get info async give badges, etc. This was definitely an interesting lesson and I canβt wait till I can put my skills to the test.
Hey everyone,
Day 21/100 - Scripting on Roblox
#ROBLOX#RobloxDev#RobloxDevsDiscord
Port Server - https://t.co/egFGok27US
For today's update I had the chance to learn about ordered datastores, some takeaways I seen was some getter methods with async on the datastore. With optional arguments such as entries per page, going in ascending or descending order, and minimum and maximum, etc. This is very useful as you can see in most leaderboards and possibly setting a limit can be useful because there can be scores are impossible so filtering them out from being added is useful. I would like to create my own global lb, I would need to search a video on how to make the specific buttons/frames, etc. But I believe this was a great lesson and im excited to keep testing my skills.
Hey everyone,
Day 20/100 - Scripting on Roblox
#ROBLOX#RobloxDev#RobloxDevsDiscord
Port Server - https://t.co/egFGok27US
For today's update I had the chance to learn about DataStores, this was a valuable lesson, since this was something that I wondered if it happens automatically or a set up that happens on the server side that whenever a user/client leave a game their data gets saved. And will be able to access that data on rejoin. There was some useful functions I learned about like set async, update async, etc. These a bit tricky in terms of adding multiple at the same time, going to keep looking into that, but one of the biggest takeaways was the pcall wrapped function, it is very useful whenever we are setting asyncs since this returns us a successful value + our return value. Very excited to keep learning more about datastores tomorrow.